Zend 1 ajax与道场信息人

时间:2015-12-02 13:04:33

标签: ajax zend-framework dojo

我使用dojo与Zend 1合作,不知道如何使用ajax。在我的特殊情况下,当选择一个选择时,是否从数据库信息中查询ajax。要从用户输入ID,请通过ajax打印用户的信息。在我的工作中,我不能使用jquery。

1 个答案:

答案 0 :(得分:2)

好问题! 使用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;
}