2016-07-27 161 views
0

我使用ajax来做我的选择框,但是当我选择第一个选择框时,第二个选择框没有显示任何值。如何显示第二个选择框中的值?基于另一个选择框值的选择框php

的index.php(jQuery的):

$(document).ready(function(){ 
    $('#brand').on('change',function(){ 
     var brand = $(this).val(); 
     if(brand){ 
      $.ajax({ 
       type:'POST', 
       url:'ajax_city.php', 
       data:'brand='+brand, 
       success:function(html){ 
        $('#outlet').html(html); 
       } 
      }); 
     }else{ 
      $('#outlet').html('<option value="">Select OUTLET first</option>'); 
     } 
    }); 
}); 

的index.php(HTML/PHP)

 <select class="brand" style="width:200px" id="brand" name="brand" > 
      <?php $i = 0; 
      while (!$br->EOF) { 
       $fv = $br->Fields("mBrand"); 
       $name = $fv->value; 
       echo '<option value="' . trim($name) . '"><b>' . $name . '</b></option>'; 
       $br->MoveNext(); 
      } 
      ?> 
     </select> 
     <input type="hidden" name="loc" id="loc"> 
    </td> 
</div> 
<li class="form-line" id="id_19"> 
    <label class="form-label-left" id="label_19" for="input_19"> Outlet </label> 
    <div id="cid_20" class="form-input"> 
    <br><br> 
    <select class="outlet" name="outlet" id="outlet" style="width:200px" > 
     <option value="">--Select outlet--</option> 
    </select> 

ajax_city.php:

if(isset($_POST["brand"])&&!empty($_POST["brand"])) 
{ 
$brand=$_POST['brand']; 
$rb = $itdeptconn->Execute("SELECT DISTINCT mOutlet FROM [IT_Dept].[dbo].[mstOutlet] WHERE mBrand='".$brand."'"); 
//$sql=mysql_query("select b.id,b.data from data_parent a,data b where b.id=a.did and parent='$id'"); 

echo '<option value="">Select Outlet</option>'; 
           while (!$rb->EOF) { 

            $fv = $rb->Fields("mOutlet"); 
            $name = $fv->value; 

            echo '<option value="' . trim($name) . '"><b>' . $name . '</b></option>'; 
            $rb->MoveNext(); 
           } 
} 
       ?> 
+0

任何控制台错误? – Rasclatt

+0

在你的ajax中,试试:'data:{“brand”:brand},' – Rasclatt

+0

@Rasclatt没有错误显示。 – Jazlyn

回答

0

ü请使用方括号而不是ajax_city.php页面上的圆括号。 它应该是 - >空($ _ POST [ “品牌”))

希望它会工作

+0

我已经尝试更换支架,但仍然没有工作。 – Jazlyn

+0

您错过了ajax_city.php上的一个右括号,添加那个右括号并再试一次 – Roma

+0

嗨,我已添加了右括号,但下拉框的值也没有出来。 – Jazlyn

0

指数:

       <!DOCTYPE html> 
      <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> 
       <head> 
       <meta http-equiv='content-type' content='text/html;charset=utf-8' /> 
       <link type='text/css' rel='stylesheet' href='test.css' /> 
       <script type='text/javascript' src='js/jquery-1.12.1.js'></script> 
       </head> 
      <body> 
      <select class="brand" style="width:200px" id="brand" name="brand" > 
         <option value="">--Select outlet--</option> 
        <option value="data11">Data11</option> 
        <option value="data21">data21</option> 
        <option value="data31">data31</option> 
        </select> 
        <input type="hidden" name="loc" id="loc"> 
       </td> 
      </div> 
      <li class="form-line" id="id_19"> 
       <label class="form-label-left" id="label_19" for="input_19"> Outlet </label> 
       <div id="cid_20" class="form-input"> 
       <br><br> 
       <select class="outlet" name="outlet" id="outlet" style="width:200px" > 
        <option value="">--Select outlet--</option> 
       </select> 
       <script type="text/javascript"> 
       $(document).ready(function(){ 
        $('#brand').on('change',function(){ 
         var brand = $(this).val(); 
         if(true){ 
          $.ajax({ 
           type:'POST', 
           url:'ajax_city.php', 
           data:'brand='+brand, 
           success:function(html){ 
            $('#outlet').html(html); 
           } 
          }); 
         }else{ 
          $('#outlet').html('<option value="">Select OUTLET first</option>'); 
         } 
        }); 
       }); 
       </script> 
      </body> 
      </html> 

ajax_city.php

       <?php 

      if(isset($_POST["brand"])&&!empty($_POST["brand"])) 
      { 
       $brand = $_POST['brand']; 
      // $rb = $itdeptconn->Execute("SELECT DISTINCT mOutlet FROM [IT_Dept].[dbo].[mstOutlet] WHERE mBrand='".$brand."'"); 
       //$sql=mysql_query("select b.id,b.data from data_parent a,data b where b.id=a.did and parent='$id'"); 
       $rb = ["brand1","brand2","brand3"]; 
      // $rowcount = $rb->num_rows; 
       if(count($rb)>0){ 
        echo '<option value="">Select Outlet</option>'; 
         for($i=0;$i<count($rb);$i++) 
         { 
          echo '<option value="'.$rb[$i] .'"><b>'.$rb[$i]. '</b></option>'; 
         } 
       }else { 
        echo '<option value="">Outlet not available</option>'; 
       } 
      } 
      ?> 
+0

我可以这样写吗?我已发布我的答案在另一篇文章 – Jazlyn

0

使用这个代码,我已经添加了所有的评论,然后检查它是否有效。它对我来说工作得很好。

ajax_city.php

   <?php 
      define("DBHOST"," "); //write your host name 
      define("DBNAME"," "); //write your database name 
      define("DBUSER"," "); //write your username 
      define("PASS"," "); //write your password 
      $itdeptconn = new PDO('mysql:host='.DBHOST.';dbname='.DBNAME,DBUSER,PASS); 


      if(isset($_POST["brand"])&&!empty($_POST["brand"])) 
      { 
       $brand=$_POST['brand']; 
       $rb=$itdeptconn->prepare("SELECT DISTINCT name FROM restaurant WHERE check_payable_to='C3'"); //write here your query 
       $rb ->execute(); 
       if(count($rb)>0) 
       { 
        echo '<option value="">Select Outlet</option>'; 
         while($data = $rb ->fetch()) 
         { 
          echo '<option value="' . $data['name'] . '"><b>' . $data['name'] . '</b></option>'; } //name is the column name,change it with your column name 
         } 
       }  
       else 
       { 
        echo '<option value="">Outlet not available</option>'; 
       }  
      ?> 
+0

感谢您的代码,但这项工作oledb数据库? bcoz即时通讯使用它。 – Jazlyn

相关问题