在視圖中我有一個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表單)? –