Aşağıdaki kod ile, Zend çalışan bir dojo combobox almak çalışıyorum:
$url = '/db/autocomplete/table/suburbs';
$element = new Zend_Dojo_Form_Element_ComboBox('suburb1');
$element->setStoreId('suburbsStore');
$element->setStoreType('dojo.data.ItemFileReadStore');
$element->setStoreParams(array('url' => $url));
$element->setDijitParam('searchAttr', 'name');
ve çıkış (Ben bunu biraz biçimlendirdiğimiz) bu javascript:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.2.0/dojo/dojo.xd.js"></script>
<script type="text/javascript">//<![CDATA[
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.form.ComboBox");
dojo.require("dojo.parser");
dojo.addOnLoad(function() {
dojo.forEach(zendDijits, function(info) {
var n = dojo.byId(info.id);
if (null != n) {
dojo.attr(n, dojo.mixin({ id: info.id }, info.params));
}
});
dojo.parser.parse();
});
var suburbsStore = new dojo.data.ItemFileReadStore({"url":"\/db\/autocomplete\/table\/suburbs"});
var zendDijits = [
{"id":"suburb1","params":{
"store":"suburbsStore",
"searchAttr":"name",
"dojoType":"dijit.form.ComboBox"}
},
{"id":"suburb2","params":{
"store":"suburbsStore",
"searchAttr":"name",
"dojoType":"dijit.form.ComboBox"}
}
];
//]]></script>
ve (kaldırıldı yabancı malzeme ile) bu HTML:
<input options="" id="suburb1" name="suburb1" value="" type="text" />
<input options="" id="suburb2" name="suburb2" value="" type="text" />
<input type="submit" />
ve ben alıyorum hata dojo.data is undefined var suburbsStore = new dojo.data.ItemFileReadStore(...)
hattı üzerinde. Şüphesiz bu çağrı dojo.require("dojo.data.ItemFileReadStore");
sonra ve çok ince olmalı?! Ama açıkçası ben bir şey eksik.
Teşekkür ederiz!