ビューでは、次のようなhtmlselect要素があります
<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を「http://localhost/project/index.php?r=site/getcategories&genre=value」として.getJSON urlパラメーターを変更しようとしましたが、何も変更しませんでした。誰か私を助けることができますか?
ありがとう。