2016-07-27 3 views
0

아약스를 사용하여 선택 상자를 수행하지만 첫 번째 선택 상자를 선택하면 두 번째 선택 상자에 값이 표시되지 않습니다. 어떻게 두 번째 선택 상자에 값을 표시 할 수 있습니까?다른 선택 상자 값에 따라 상자 선택 ph

의 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

아약스에서'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

사용 이 코드에서는 모든 주석을 추가하여 해당 주석을 따르고 works.It이 제대로 작동하는지 확인합니다.

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

관련 문제