【发布时间】:2012-12-24 20:08:43
【问题描述】:
我不明白如何根据我在第一次选择中所做的选择来填充第二次选择。
我想要做的是添加一个位置。要添加一个位置,我有第一个 select,它有 4 个 options:大陆、国家、地区和城市。而且,例如,如果我 select 城市类型,我希望在我的第二个选择中仅显示我可以连接城市的区域。如果我选择了一个国家,那么我希望第二个选择只显示大陆。
到目前为止我有这个:
<p><label for="type_id">Tip de locatie:</label><br />
<select class="styled" name="type_id" id="type_id">
<option value="0">Alege...</option>
<?php
foreach ($place_type as $key => $type) { ?>
<option value="<?=$type['id']?>"><?=$type['name']?></option>
<?php } ?>
</select>
</p>
<noscript>
<input type="submit" name="action" value="Load Parents" />
</noscript>
<p><label for="parent_id">Leaga de:</label> <br />
<select class="styled" name="parent_id" id="parent_id">
<option value="0">Alege...</option>
<?php
foreach ($places as $key => $place) { ?>
<option value="<?=$place['id']?>"><?=$place['name']?></option>
<?php } ?>
</select>
</p>
我正在使用 codeigniter 框架,并且我在控制器中有这个方法:
public function get_place_parent()
{
$this->load->model('places_model');
$places = $this->places_model->get_places();
$places = json_encode($places);
return $places;
}
和 jQuery
<script type="text/javascript" charset="utf-8">
$(function(){
$("select#type_id").change(function(){
$.getJSON("<?=site_url('admin/get_place_parent')?>",{type_id: $(this).val(), ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + i + '">' + j[i] + '</option>';
}
$("select#parent_id").html(options);
})
})
})
</script>
我真的不明白如何做到这一点。它基于本教程:http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/
提前谢谢你!
【问题讨论】:
-
I don't really understand只是广义的声明。需要提供具体问题....哪一部分你不明白?您的代码的哪一部分有效或无效?
标签: php jquery json codeigniter