【发布时间】:2014-06-27 18:27:23
【问题描述】:
我有 3 个 HTML 下拉菜单。第一个下拉列表是静态的,接下来的两个依赖于前一个下拉列表。我的观点是这样的:
<div class="col-xs-3">
<label for="cat1"><h4>Main Category</h4></label>
<select class="form-control" name="cat1" id="cat1"
onchange="$('#secondary').load('<?php echo site_url('createplay/getMainCategories'); ?>?cat='+this.value);">
<?php
$sql = "SELECT DISTINCT level_one FROM categories";
$query = $this->db->query($sql);
foreach ($query->result() as $row) {
echo "<option value='".$row->level_one."'>".$row->level_one."</option>";
}
?>
</select>
</div>
<div class="col-xs-4" id='secondary'>
</div>
<div class="col-xs-3" id='sub-secondary'>
</div>
SQL 仅在视图中帮助您了解我在做什么。我通常将它保存在模型中。 onchange 调用控制器/方法并将 HTML select 值传递给它。这里是getMainCategories:
public function getMainCategories() {
$cat = $this->input->get('cat');
$sql = "SELECT DISTINCT level_two FROM categories WHERE level_one='".$cat."'";
echo '<label for="cat2"><h4>Secondary Category</h4></label>';
$jquery = "$('#sub-secondary').load('".site_url('createplay/getSubSecondary')."?subcat='+this.value);";
echo '<select class="form-control" name="cat2" id="cat2"
onchange="'.$jquery.'">';
$query = $this->db->query($sql);
foreach ($query->result() as $row) {
echo '<option value="'.$row->level_two.'">'.$row->level_two.'</option>';
}
echo '</select>';
}
现在第一个下拉菜单正确显示,当我进行选择时,第二个下拉菜单出现并正常工作。问题是当我在第二个下拉列表中进行选择时,第三个下拉列表没有出现。什么都没有发生,没有错误消息,什么都没有。我确信这是因为我从 PHP 脚本调用 jQuery 的方式。
我该如何解决这个问题以使其更干净并填充第三个下拉菜单?
【问题讨论】:
标签: php jquery mysql codeigniter