我正在尝试绑定一个onChange
的{{1}}事件来填充另一个FilteringSelect
。
FilteringSelect
JSON是根据我使用// View
dojo.addOnLoad(function () {
dojo.connect(dijit.byId('filterselect1'), 'onChange', function () {
dijit.byId('filterselect2').store = new dojo.data.ItemFileReadStore(
{ url: "/test/autocomplete/id/" + dijit.byId("filterselect1").value }
);
});
});
帮助程序从Zend Action Controller正确判断的内容生成的。
autoCompleteDojo
我正确地从远程数据存储区接收JSON,但它没有填充第二个// Action Controller
public function autocompleteAction()
{
$id = $this->getRequest()->getParam('id');
$select = $this->_table->select()
->from($this->_table, array('id','description'))
->where('id=?',$id);
$data = new Zend_Dojo_Data('id', $this->_table->fetchAll($select)->toArray(), 'description');
$this->_helper->autoCompleteDojo($data);
}
。我还需要做些什么才能将JSON推送到FilteringSelect
?
答案 0 :(得分:3)
我无法相信这会导致问题,但整个问题归结为这样一个事实:似乎dojo ItemFileReadStore 要求 JSON的label属性为“name”。最后,这就是将它们连接在一起所需的全部内容。
dojo.addOnLoad(function () {
dijit.byId('filtering_select_2').store = new dojo.data.ItemFileReadStore({url: '/site/url'});
dojo.connect(dijit.byId('filtering_select_1'), 'onChange', function (val) {
dijit.byId('filtering_select_2').query.property_1 = val || "*";
});
});
更新:Zend表格中的属性已固定为ZF 1.8.4
答案 1 :(得分:1)
在事件中尝试console.log()以查看它是否已启动。更改商店应该可以使用,但是对于像网格这样的其他小部件,您还需要调用刷新方法。