首页 > 开发 > AJAX > 正文

ajax+jQuery实现级联显示地址的方法

2024-09-01 08:33:30
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了ajax+jQuery实现级联显示地址的方法,涉及jQuery操作Ajax实现级联显示的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了ajax+jQuery实现级联显示地址的方法。分享给大家供大家参考。具体实现方法如下:

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8" 
  2. contentType="text/html; charset=utf-8" 
  3. %> 
  4. <html> 
  5. <head> 
  6. <title>初始化HELLO</title> 
  7. <script type="text/javascript" src="../../js/jquery.js"></script> 
  8. <script type="text/javascript"> 
  9. $(document).ready(function(){ 
  10. var str1='${str}'; 
  11. var strArr=str1.split(","); 
  12. var k; 
  13. for(k=0;k<strArr.length;k++) 
  14. { 
  15. $.ajax({ 
  16. async:false,//原来是这样,不然AJAX是一起发送的,加上这个的话,就保证这个请求有结果,才会发下一个请求 
  17. url:'init.action',//请求的URL 
  18. cache: false, //不从缓存中取数据 
  19. data:{pid:strArr[k]},//发送的参数 
  20. type:'Get',//请求类型 
  21. dataType:'json',//返回类型是JSON 
  22. timeout:20000,//超时 
  23. error:function()//出错处理 
  24. { 
  25. alert("程序出错!"); 
  26. }, 
  27. success:function(json)//成功处理 
  28. { 
  29. var len=json.length;//得到查询到数组长度 
  30. if(strArr[k]=="0")//顶目属地 
  31. {  
  32. $("<select id='no1' style='width:80px' onchange='show()'></select>").appendTo("#content");//在content中添加select元素 
  33. $("<option value='-1'>请选择</option>").appendTo("#no1"); 
  34. for(var i=0;i<len;i++)//把查询到数据循环添加到select中 
  35. { 
  36. $("<option value="+json[i].channelId+">"+json[i].channelName+"</option>").appendTo("#no1"); 
  37. } 
  38. } 
  39. else 
  40. { 
  41. $("<select stype='width:80px' onchange='show()'></select>").appendTo("#content"); 
  42. $("<option value='-1'>请选择</option>").appendTo("#content>select:last"); 
  43. for(var i=0;i<len;i++) 
  44. { 
  45. $("<option value="+json[i].channelId+">"+json[i].channelName+"</option>").appendTo("#content>select:last"); 
  46. } 
  47. $("#content>select:eq("+(k-1)+")>option[@value="+strArr[k]+"]").attr("selected","true");//设置选中 
  48. if(len==0)//最后一级,没东西就把它给删除 
  49. { 
  50. $("#content>select:last").remove(); 
  51. } 
  52. } 
  53. } 
  54. }); 
  55. }//for循环的结尾 
  56. }); 
  57. function show() 
  58. { 
  59. var obj=event.srcElement;//取得当前事件的对象,也就是你点了哪个select,这里得到的就是那个对象 
  60. var currentObj=$(obj);//将JS对象转换成jQuery对象,这样才能使用其方法 
  61. var s1=$(obj).nextAll("select");//找到当前点击的后面的select对象 
  62. s1.each(function(i){ 
  63. $(this).remove();//循环把它们删除 
  64. }); 
  65. var value1=$(obj).val(); 
  66. $.ajax({ 
  67. url:'init.action', 
  68. cache:false, 
  69. data:{pid:value1}, 
  70. type:'Get', 
  71. dataType:'json', 
  72. timeout:20000, 
  73. error:function() 
  74. { 
  75. alert("出错啦"); 
  76. }, 
  77. success:function(json) 
  78. { 
  79. var len=json.length; 
  80. if(len!=0) 
  81. { 
  82. $("<select style='width:80px' onchange='show()'></select>").appendTo("#content"); 
  83. $("<option value='-1'>请选择</option>").appendTo("#content>select:last"); 
  84. for(var i=0;i<len;i++) 
  85. { 
  86. $("<option value="+json[i].channelId+">"+json[i].channelName+"</option>").appendTo("#content>select:last"); 
  87. } 
  88. } 
  89. } 
  90. }); 
  91. } 
  92. </script> 
  93. </head> 
  94. <body> 
  95. <h1> 
  96. 显示管理员信息 
  97. </h1> 
  98. <table width="50%" border="1"> 
  99. <tr> 
  100. <td>管理员编号</td><td><input type="text" value="${admin.adminId}"></td> 
  101. </tr> 
  102. <tr> 
  103. <td>管理员帐号</td><td><input type="text" value="${admin.adminAccount}"> </td> 
  104. </tr> 
  105. <tr> 
  106. <td>管理员姓名</td><td><input type="text" value="${admin.adminName}"> </td> 
  107. </tr> 
  108. <tr> 
  109. <td>管理员密码</td><td><input type="text" value="${admin.password}"> </td> 
  110. </tr> 
  111. <tr> 
  112. <td>管理员属地</td><td><input type="text" value="${admin.channelid}"> </td> 
  113. </tr> 
  114. </table> 
  115. <div id="content" 
  116. style="width: 500px; border: 1px; border-style: solid; background-color: lightblue;"> 
  117. </div> 
  118. </body> 
  119. </html> 

希望本文所述对大家的jquery程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表