0

我有来自这里的国家数据库http://www.webmasterworld.com/html/3018309.htm 有 239 个国家,每个国家都有价值。在选项中选择了另一个国家后,如何使用新值的区域更新区域列表?

$country_query = mysql_query("SELECT * FROM country WHERE status = '1' ORDER BY name ASC");
$zone_query = mysql_query("SELECT * FROM zone WHERE country_id = '" . (int)$country_id . "' AND status = '1'");

<select name="country_id">
          <option value=""><?php echo '$text_select;' ?></option>
          <?php while ($country=mysql_fetch_array($country_query)) { ?>
          <?php if ($country['country_id'] == $country_id) { ?>
          <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option>
          <?php } else { ?>
          <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option>
          <?php } ?>
          <?php } ?>
</select>
4

1 回答 1

1

第一次默认加载县列表..加载区域使用这个

<select name="country" id='country'>
          <option value=""><?php echo '$text_select;' ?></option>
          <?php while ($country=mysql_fetch_array($country_query)) { ?>
          <?php if ($country['country_id'] == $country_id) { ?>
          <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option>
          <?php } else { ?>
          <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option>
          <?php } ?>
          <?php } ?>
</select>

这里需要在国家改变时调用ajax

查询:

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){

    $('#country').change(function(){

        $.post('ajax/getZones', 
                   {Country : $('#country').val()}, 
                   function(response){
                     //prepare the zones html code
                     //write that code to zone dropdown 
                  }, 'json');

    });

});
</script>

这里'ajax/getZones'getZonesajax控制器中的方法

在getZones (ajax)中编写 getZones 查询在ajax 控制器中使用$_POST['Country']获取 Country id

尝试实现ajax控制器一切正常..

于 2012-07-18T09:40:40.580 回答