在视图中我有一个HTML选择元件如PHP Yii框架和jQuery AJAX的getJSON
<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;
}
所以,我就像当用户改变select元素时,应用程序会自动更改另一个名为“c”的select元素的元素列表。我试图通过以下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”,但没有任何结果。可以帮助别人吗?
谢谢。
什么是你从Ajax响应得到些什么?错误是什么? – Asgaroth
您是否使用生成的Yii表单(CActiveForm或CHtml表单)? –