在一个视图中,我有一个 html 选择元素,例如
<select id="g" name="g" style="width: 160px; height: 26px; background-color: white; border: 2px solid silver; padding: 0px 4px 0px 4px; box-shadow: 4px #333333;">
<option value="value1">Value1</option>
<option value="value2">Value2</option>
<option value="value3">Value3</option>
<option value="value4">Value4</option>
</select>
在控制器中我有一个动作如下
public function actionGetCategories($genre) {
if(isset($genre)) {
$c = new Category();
return CJSON::encode($c->findAll(array(
'select'=>'category',
'condition'=>'genre = \'' . $genre .'\''
)));
} else {
return 0;
}
所以,我希望当用户更改选择元素时,应用程序会自动更改另一个名为“c”的选择元素的元素列表。我试图通过以下 JS 代码来做到这一点:
<script type="text/javascript">
$(function () {
$("#g").change(function () {
var items = "<option>All categories</option>";
var self = $(this);
$.getJSON("<?php echo $this->createUrl('site/getcategories', array('genre'=>'value')) ?>",
function (data) {
$.each(data, function (index, item) {
items += "<option>" + item + "</option>";
});
$("#c").html(items);
});
});
});
</script>
但不工作!我还尝试使用完整的根 URL 将 .getJSON url 参数更改为“http://localhost/project/index.php?r=site/getcategories&genre=value”,但没有。可以帮助别人吗?
谢谢。