2015-12-02 63 views
1

我正在與Zend 1一起使用dojo,不知道如何使用ajax。在我的特定情況下,當選擇一個選擇,無論是在諮詢阿賈克斯從數據庫信息回來。從用戶輸入一個ID通過ajax打印來自用戶的信息。在我的工作中,我無法使用jquery。Zend 1 ajax with dojo informatiom person

回答

2

好問題! 與道場並不是非常有成效的工作,但有可能使你完全想要如何。您將創建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"); 
     } 
    } 
}); 

現在,你需要創建一個動作 「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; 
} 
+0

它作品!!!謝謝。 –