【发布时间】:2015-12-02 13:04:33
【问题描述】:
我正在使用 Zend 1 和 dojo,但不知道如何使用 ajax。在我的特定情况下,选择选择时,是否从数据库信息咨询AJAX。要输入用户的 ID,请通过 ajax 打印用户的信息。在我的工作中,我不能使用 jquery。
【问题讨论】:
标签: ajax zend-framework dojo
我正在使用 Zend 1 和 dojo,但不知道如何使用 ajax。在我的特定情况下,选择选择时,是否从数据库信息咨询AJAX。要输入用户的 ID,请通过 ajax 打印用户的信息。在我的工作中,我不能使用 jquery。
【问题讨论】:
标签: ajax zend-framework dojo
好问题! 使用 dojo 不是很有成效的工作,但可以完全按照您的意愿进行。您将使用数据库中捕获的信息创建 p 元素
在您的表单中,添加属性“onChange”
$form->setAttrib('onChange', 'recoveryData()');
在 js 文件中是否有一个函数 recoveryData(),例如:
dojo.require("dojo.html");
// clean data
var myNewElement = dojo.byId('myNewElement');
if (myNewElement != null) {
dojo.empty("myNewElement");
}
dojo.xhrPost({
content: {id: dojo.attr(dojo.byId("myElement"), "value")},
url: 'your-base-path/recovery-data/',
load: function (response) {
if (response != false) {
// converte to obj
var obj = dojo.fromJson(response);
// creat new element
var node = dojo.create("span", {
innerHTML: obj.NomeServidor,
id: "myNewElement",
'class': 'row'
}
);
dojo.place(node, dojo.byId("myElement"), "after");
}
}
});
现在,您需要在 Controller 中创建一个 Action“recoveryDataAction()”,如下所示:
$data = $this->getrequest()->getPost();
$id = $data['id'];
if ($this->getrequest()->isXmlHttpRequest()) {
// disable layout
$this->_helper->layout()->disableLayout();
// disable view render
$this->_helper->viewRenderer->setNoRender();
$yourTable = new Project_Model_YourTable();
$row = $yourTable->fetchRow($id);
if ($infos != null) {
echo Zend_Json::encode($row);
return;
}
echo false;
}
【讨论】: