我现在在做一个项目。。要用到无限级分类表。。在数据表中有3个字段。一个ID parentID name,,请问我如何实现在页面上的select标签下显示这个列表啊。。
在网上还看到一种使用编码实现的。如一级分类001 002 二级分类001001 001002 002001 002002这个怎么实现。。他增加类型的时候代码也要增长。。请大家谁能告诉我啊。。急切盼望热心人。。。
有谁会的希望加下我QQ:969994489
[b]问题补充:[/b]
不用ajax。。本人没学过。。现在急需完成这功能。。有谁会的加一下我QQ。。或者留下QQ。。不甚感激。。
那就用javascript 数组了,
将数据放在request 再到 jsp 生成 javavscript 数组.
我不建议这样做,这样parentID 会无效长
[quote]在网上还看到一种使用编码实现的。如一级分类001 002 二级分类001001 001002 002001 002002这个怎么实现[/quote]
我的方案
ID parentID name
如果是一级分类 parentID 为0
如果是二,三 ....级分类 parentID 为他的父类ID就是了
请问我如何实现在页面上的select标签下显示这个列表啊
用ajax 啊 首先列出一级分类,再根据选择的父类去加载子类(parentID)(ajax)
无限级分类设计--纯数据库实现
[url]http://www.cnblogs.com/aaronlive/archive/2009/02/07/1386023.html[/url]
无限级分类的实现
[url]http://www.amuhouse.com/blog/article.asp?id=196[/url]
主题:使用hibernate实现树形结构无限级分类
[url]http://www.iteye.com/topic/29482[/url]
要求页面刷新吗
[code="java"]
//看看这个表结构
CREATE TABLE XXX_SORT
(ID
varchar(32) NOT NULL,NAME
varchar(200) default NULL,LEVEL
int(3) default NULL,PARENT
varchar(32) default NULL,VERSION
int(11) default NULL,RELATING
varchar(32) default NULL,
PRIMARY KEY (ID
),
KEY FKEEDFA58BF12BBBC8
(PARENT
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
[/code]
这里是对应的pojo
[code="java"]
SuppressWarnings({"serial","unused"})
@Entity
@Table(name="XXX_SORT")
public class FilterSort extends IdentifiableEntity {
private String name;
private Integer level;
private FilterSort parent;
private Integer version;
private String relating;
private Set<FilterSort> children = new HashSet<FilterSort>();
@OneToMany(mappedBy="parent" , cascade= CascadeType.ALL , fetch= FetchType.LAZY)
@OrderBy(value = "id ASC")
public Set<FilterSort> getChildren() {
return children;
}
public void setChildren(Set<FilterSort> children) {
this.children = children;
}
@Column(name="NAME",nullable=true)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToOne(cascade = CascadeType.REFRESH,optional=true)
@JoinColumn(name="PARENT")
public FilterSort getParent() {
return parent;
}
public void setParent(FilterSort parent) {
this.parent = parent;
}
@Column(name = "RELATING", nullable = false)
public String getRelating() {
return relating;
}
public void setRelating(String relating) {
this.relating = relating;
}
@Column(name="LEVEL" , nullable=false)
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
@Version
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
}
[/code]