根据所选的州显示城市

时间:2013-08-21 20:31:02

标签: php jquery mysql

我的脚本正常运行,问题是我在一个页面上进行编辑,并且出现了所有数据

<tr>
    <td class="left">Estado</td>
    <td>
        <select name="estado" id="select2_1" onChange="buscar_cidades()" style="width: 40%;">
             <option value="">--</option>
             <?php foreach ($arrEstados as $value => $name) {
                   echo   "<option value='{$value}' ".selected($estado,$value).">{$name}</option>";
             }?>
        </select>
   </td>
</tr>                  
<tr>
    <td class="left">Cidade</td>
    <td>
     <div id="load_cidades">     
        <select name="cidade" id="select2_2" style="width: 50%;">
          <option value="">Select the state</option> 
        </select>
     </div>
   </td>
</tr> 

function buscar_cidades(){

  var estado = $('#select2_1').val();
  if(estado){
    var url = 'ajax_cidades.php?estado='+estado;
    $.get(url, function(dataReturn) {
      $('#load_cidades').html(dataReturn);
    });
  }
}

我的文件ajax_cidades.php

<?php   
require_once('application/config/database.php');

$estado = $_GET['estado'];

$sql = "SELECT * FROM loc_cidade WHERE id_uf = $estado ORDER BY nome";
$res = mysql_query($sql) or die(mysql_error());
$num = mysql_num_rows($res);

for ($i = 0; $i < $num; $i++) {
  $dados = mysql_fetch_array($res);
  $arrCidades[$dados['id']] = $dados['nome'];
}
?>


                                            <select name="cidade" id="select2_2" style="width: 50%;">
                                                <?php foreach($arrCidades as $value => $nome){
                                                    echo "<option value='{$value}'>{$nome}</option>";
                                                  }
                                                ?>

我已经尝试了所有功能,但是,功能“选定”检查等同于品牌为“已选择”

打印屏幕

http://oi44.tinypic.com/pu5w6.jpg

1 个答案:

答案 0 :(得分:0)

我不确定你为什么要让你的ajax_cidades.php循环两次相同的数据。

<?php   
require_once('application/config/database.php');

$estado = $_GET['estado'];

$sql = "SELECT * FROM loc_cidade WHERE id_uf = $estado ORDER BY nome";
$res = mysql_query($sql) or die(mysql_error());
$num = mysql_num_rows($res);
echo '<select name="cidade" id="select2_2" style="width:50%;">';
for ($i = 0; $i < $num; $i++) {
  $dados = mysql_fetch_array($res);
  echo '<option value="'.$dados['id'].'">'.$dados['nome'].'</option>';
}
echo '</select>';
?>

另外,尝试通过添加

来调试ajax调用返回的内容
console.log(dataReturn)
$.get(url, function(dataReturn) {

之后

到您的函数

然后检查您的控制台以确保您的页面返回预期的数据。