yxhxj2006

          常用鏈接

          統計

          最新評論

          PHP和Ajax實現二級聯動下拉菜單(代碼、詳細注釋)

          數據庫
          .

          .
          test.html
          ..
          <html>
          <head><title>php_ajax聯動下拉菜單</title>
          <meta http-equiv="content-type" content="text/html;charset=gb2312">
          <script language="javascript" src="ajax.js"></script>
          <script language="javascript">
          function query(){
          var pid = document.getElementByIdx("bigClassName").value;
          if(pid!=""){
             createRequest('query.php?pid='+pid);
          }
          }
          </script>
          </head>
          <body>
          <form action="<?=$PHP_SELF?>?" name="class" method="get" >
          <select name="bigClassName" id="bigClassName" onchange="query()">
          <option value="">--選擇大類--</option>
          <?php
          $link=mysql_connect("localhost","root","root");
          mysql_select_db("sortclass") or die("沒有此數據庫!");
          $sql="select cid,cname from class where pid=0";
          mysql_query("set names gb2312");
          $res=mysql_query($sql,$link);
          while($result=mysql_fetch_assoc($res)){
             echo "<option value='".$result["cid"]."'>".$result["cname"]."</option>";
          }
          ?>
          </select>
          &nbsp;
          <select name="smallClassName" id="smallClassName">
          <option value="">--選擇小類--</option>
          </select>
          <input type="submit" value="提交" />
          </form>
          </body>
          </html>
          .
          ajax.js
          .
          var http_request = false;
          function createRequest(url) {
          //初始化對象并發出XMLHttpRequest請求
          http_request = false;
          if (window.XMLHttpRequest) {            //Mozilla等其他瀏覽器
             http_request = new XMLHttpRequest();
             if (http_request.overrideMimeType) {
              http_request.overrideMimeType("text/xml");
             }
          else if (window.ActiveXObject) {          //IE瀏覽器
             try {
              http_request = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
              try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
               } catch (e) {}
             }
          }
          if (!http_request) {
             alert("不能創建XMLHTTP實例!");
             return false;
          }
          http_request.onreadystatechange = alertContents;         //指定響應方法

          http_request.open("GET", url, true);         //發出HTTP請求
          http_request.send(null);
          }
          function alertContents() {                   //處理服務器返回的信息
          if (http_request.readyState == 4) {
             if (http_request.status == 200) {
              var smallClassName=document.getElementByIdx("smallClassName");
              var dataArray=[];
              //alert(http_request.responseText);
              myVariable=http_request.responseText;//形如: 1,新聞中心;2,學習園地;
              var stringArray = myVariable.split(";");//以;分隔字符串
              stringArray.pop();//移除數組最后一個元素,stringArray[0]==1,新聞中心 stringArray[1]==2,學習園地   
              var len=stringArray.length;
              for(var i=0;i<len;i++){   
               dataArray[i]= stringArray[i].split(",");// 循環數據條數按,分割字符串
              }
              //alert(dataArray[1][0]);//返回 新聞中心
              
          //初始化smallClassName的數據
              smallClassName.length=0;
              var alertOption=document.createElement_x("OPTION");
              alertOption.value="";
              alertOption.text="--選擇小類--";
              smallClassName.add(alertOption);
             
              for(var j=0;j<len;j++){//添加數據
                 var objOption=document.createElement_x("OPTION");
               objOption.value = dataArray[j][0];
               objOption.text = dataArray[j][1];
               smallClassName.add(objOption);
              }
             
             } else {
              alert('您請求的頁面發現錯誤');
             }
          }
          }
          ..
          query.php
          ..
          <?php
          error_reporting(E_ERROR|E_WARNING|E_PARSE);
          $link=mysql_connect("localhost","root","root");
          mysql_select_db("sortclass",$link) or die("no such database!");
          //$GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);    //Ajax中先用encodeURIComponent對要提交的中文進行編碼
          mysql_query("set names gb2312");
          $pid=$_GET[pid];
          $res=mysql_query("select cid,cname from class where pid='$pid'",$link);
          header('Content-type: text/html;charset=GB2312');   //指定發送數據的編碼格式為GB2312
          while($info=mysql_fetch_array($res)){
             $str.=$info["cid"].",".$info["cname"];
             $str.=";";
          }
          echo $str;
          ?>

          posted on 2014-02-28 01:12 奮斗成就男人 閱讀(908) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 四会市| 夏邑县| 当雄县| 阳江市| 连平县| 怀仁县| 涡阳县| 垫江县| 大同县| 青龙| 广平县| 奈曼旗| 大洼县| 诸城市| 宁波市| 赤峰市| 台南市| 瓮安县| 衡山县| 常熟市| 兴隆县| 嘉义市| 东源县| 定南县| 灵寿县| 宜兰市| 屏东市| 东阳市| 元阳县| 盖州市| 舟曲县| 乳山市| 若尔盖县| 永顺县| 瑞丽市| 鲜城| 海城市| 广丰县| 常熟市| 苏州市| 青田县|