javascript外加jquery中$.getJSON

来源:互联网 发布:mv linux命令 编辑:程序博客网 时间:2024/05/01 10:52
  1. <?php
  2.     header('Content-Type:text/html;charset=utf-8');
  3.     if(isset($_GET['depid'])){
  4.         //$depinfo=array();
  5.         echo "[{'depid':'-1','depname':'请选择'},{'depid':'1','depname':'开发'},{'depid':'2','depname':'测试'},{'depid':'3','depname':'产品'}]";
  6.         exit();     
  7.     }
  8. ?>
  9. <html>
  10. <head>
  11. <title>Test jQuery</title>
  12. </head>
  13. <script language="javascript" src="js/jquery.js"></script>
  14. <script language="javascript">
  15. var depChildNum=0;
  16. function getdepinfoChild(e){
  17.     var selectValue='';
  18.     var selectId='';
  19.     if(e.srcElement){
  20.         selectValue=e.srcElement.value;
  21.         selectId=e.srcElement.id;
  22.     }else{
  23.         selectValue=e.target.value;
  24.         selectId=e.target.id;
  25.     }
  26.     if(selectValue==''){ 
  27.         return;
  28.     }
  29.     var tmpreg=/^childDep/d*/;
  30.     if(!tmpreg.test(selectId)){
  31.         return;
  32.     }
  33.     try{
  34.         var tmpid=parseInt(selectId.replace('childDep',''));
  35.         var tmpContent=document.getElementById('depContentDiv');
  36.         if(tmpContent){
  37.             var childList=tmpContent.childNodes;
  38.             for(i=0;i<childList.length;i++){
  39.                 if(tmpreg.test(childList[i].id)){
  40.                     if( parseInt(childList[i].id.replace('childDep','')) > tmpid ){
  41.                         tmpContent.removeChild(childList[i]);
  42.                         i--;
  43.                     }
  44.                 }
  45.             }
  46.         }else{
  47.             return;
  48.         }
  49.         depChildNum=tmpid;
  50.     }catch(e){
  51.         return;
  52.     }
  53.     getdepinfo(selectValue);
  54. }
  55. function getdepinfo(selectValue){
  56.     $.getJSON("tmpzwbtest.php", { depid: selectValue } , 
  57.         function(json){
  58.             var depContentDiv=document.getElementById('depContentDiv');
  59.             if(depContentDiv && json.length > 0){
  60.                 var childDep=document.createElement("select");
  61.                 depChildNum=depChildNum+1;
  62.                 childDep.id='childDep'+depChildNum;
  63.             
  64.                 for(var i=0;i<json.length;i++){
  65.                     var childHtml=document.createElement('option');
  66.                     childHtml.value=json[i].depid;
  67.                     childHtml.innerHTML=json[i].depname + depChildNum;
  68.                     childDep.appendChild(childHtml);
  69.                 }
  70.                                 
  71.                 if(childDep.attachEvent){
  72.                     childDep.attachEvent('onchange',getdepinfoChild);
  73.                 }else if(childDep.addEventListener){
  74.                     childDep.addEventListener('change',getdepinfoChild,true);
  75.                 }else{
  76.                     childDep.onchange=getdepinfoChild;
  77.                 }
  78.                 depContentDiv.appendChild(childDep);
  79.             }
  80.         }
  81.     ); 
  82. }
  83. function getdepinfoFirst(selectValue){
  84.     depChildNum=0;
  85.     var tmpContent=document.getElementById('depContentDiv');
  86.     if(tmpContent){
  87.         var childList=tmpContent.childNodes;
  88.         for(i=0;i<childList.length;i++){
  89.             if(childList[i].id != 'firstSelectCon'){
  90.                 tmpContent.removeChild(childList[i]);
  91.                 i--;
  92.             }
  93.         }
  94.     }else{
  95.         return;
  96.     }
  97.     getdepinfo(selectValue);
  98. }
  99. </script>
  100. <body>
  101. <div id="depContentDiv" name="depContentDiv" >
  102.     <select id="firstSelectCon" onchange="getdepinfoFirst(this.value)" name="firstSelectCon">
  103.         <option value="1" >部门名称</option>
  104.         <option value="2">部门名称2</option>
  105.     </select>
  106. </div>
  107. </body>
  108. </html>