十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
那就给你说下二级联动吧 ,三级道理也是一样的。
创新互联公司专业为企业提供都昌网站建设、都昌做网站、都昌网站设计、都昌网站制作等企业网站建设、网页设计与制作、都昌企业网站模板建站服务,十年都昌做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
根据第一级下拉框,点击事件后,将id传递给服务器,服务器根据该id,经过数据库查询,获得二级下拉框的内容,这里的内容你可以用xml封装,或者是直接写成dom格式:如dom格式
服务端:
PrintWriter writer = response.getWriter();
writer.println("select");
while(rs.next()){
writer.println("option"+rs.getString("xxx")+"/option");
writer.flush();
}
writer.println("/select");
writer.close();
客户端:
var selectStr=xmlHttp.responseText;//二集菜单的内容
找个元素,将二级菜单项利用innerHTML插入到网页中
document.getElementById("xx").innerHTML=selectStr;
不知道这样说你明白不?
实现第三级,只需要在第二个下拉框里触发事件后,将id传递给服务器,在经过处理,将结果给第三级下拉框
//:ComboBoxText.java
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class ComboBoxText {
private String[][] xxx = {
{"浙江","杭州","温州","绍兴","舟山",},
{"江苏","南京","无锡","徐州","蒙眬",},
{"上海","闵行区","普陀区","金山区",},
};
private Object[] a(){
Object[] os = new Object[xxx.length];
for(int i=0; ixxx.length; i++){
os[i]=xxx[i][0];
}
return os;
}
private Object[] b(Object a){
for(int i=0; ixxx.length; i++){
if(xxx[i][0].equals(a)){
Object[] o = new Object[xxx[i].length-1];
for(int j=0; jo.length; j++)
o[j]=xxx[i][j+1];
return o;
}
}
return new Object[]{};
}
public static void main(String[] args) {
final ComboBoxText ct = new ComboBoxText();
final JComboBox ca = new JComboBox(ct.a());
final JComboBox cb = new JComboBox();
ca.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
cb.removeAllItems();
Object selected = ca.getSelectedItem();
Object[] newItems = ct.b(selected);
for(int i=0; inewItems.length; i++)
cb.addItem(newItems[i]);
}
});
ca.setSelectedIndex(-1);
JFrame f = new JFrame();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
f.add(ca);f.add(cb);f.setVisible(true);
f.setSize(200,100);
}
}
设计表结构为父子结构,比如市级的parentId是省级数据的id 然后每次点击类似一个下拉选择框选择省级数据的时候获取到这条数据的id去匹配拿到相应的市级数据
后台能够打印出来,说明没有问题。问题应在前边的接收端。看代码返回的是json string,对于前端来说应该仅仅是个string,而不是JS对象。
记得JQuery,发送request的时候有参数,可以自动把返回的json string变成js的object的。