2013-07-04 59 views
0

想作一個級聯下拉級聯下拉菜單中,我希望當用戶選擇區域,然後城市下拉相應填充..製作使用jQuery,PHP和MySQL

JS

$(document).ready(function() { 
    $('#region').change(function() { 
     var region = $(this).val(); 
     $.post('get_region.php', { 
      region: region 
     }, function(data) { 
      $('#district_div').html(data); 
     }); 
    }); 

PHP

<?php 
require_once('../db/connect.php'); 

$region=$_POST['region']; 

$q=mysql_query("select name from city where region='$region'"); 

$row=mysql_fetch_array($q); 
echo $row['name']; 
?> 

HTML * 強大的文本 *

<div class="controls"> 

         <select class="bootstrap-select" name="region" id="region"> 
              <option value="">Choose</option> 
             //from database 
              <?php echo $region_result; ?> 

      </select> 
    </div> 

         <select class="bootstrap-select" name="district" id="district" > 

          <div id='district_div'></div>   

      </select> 
+0

什麼是你的問題?此外,似乎你錯過了'})'在js代碼 – mishik

+0

所以你沒有檢索數據? – RicardoGonzales

+1

我的問題是我下拉不填充onchage,我在哪裏想念這? – internally1

回答

0

您正試圖在選擇框內寫入純文本。嘗試在HTML格式來寫:

<option>name</option> 

在你的JS,更換線路:

$('#district_div').html(data); 

有了:

$('#district').html(data); 

刪除DIV ID爲 「district_div」。在SELECT中不能有DIV。在PHP中,最後一行是:

echo "<option>$row[name]</option>"; 
+0

解釋更多plz – internally1

+0

試試我的編輯中的代碼。 –

0

你MIS一些作品

// will echo the name value of one row 
    $row=mysql_fetch_array($q); 
    echo $row['name']; 

嘗試

$results = array(); 
while($row = mysql_fetch_array($q)){ 
$results[] = '<option>.'$row['name'].'</option>'; 
} 
$optionString= implode(' ', $results); 
echo $optionsString; 
+0

我改變了,但沒有改變onchange – internally1

+0

你可以發佈下拉菜單的html – Miguelo

+0

yap看到我的編輯上面...... – internally1

1
-for JS it should be like this- 

$(document).ready(function() { 
    $('#region').change(function() { 
     var region = $(this).val(); 
     $.post('get_region.php', { 
      region: region 
     }, function(data) { 
      $('#district').html(data); // I change this part 
     }); 
    }); 


-for php- 

<?php 
require_once('../db/connect.php'); 

$region=$_POST['region']; 

$q=mysql_query("select name from city where region='$region'"); 

while($row = mysql_fetch_array($q)){ 
    echo "<option>".$row['name']."</option>"; 
} 

?> 


-for the html 

<div class="controls"> 
    <select class="bootstrap-select" name="region" id="region"> 
     <option value="">Choose</option> 
     //from database 
     <?php echo $region_result; ?> 
    </select> 

    <select class="bootstrap-select" name="district" id="district" > 

    </select>  <!--you don't need to put a div in the select tag--> 
</div> 
+0

你能解釋一下發布的代碼嗎? – NREZ

+0

什麼部分你不明白的代碼。?你可以看到,我只是編輯發佈的代碼。 – Ryan

+0

只需對您修改的內容進行一些基本的瞭解...將有助於使您的答案更好... – NREZ