2011-05-05 56 views
2

我想使用pure Javascript httprequest將消息發佈到Zend中的控制器/操作,並獲得回覆,我可以用經典回調函數在頁面中處理回來。Zend AJAX with pure JavaScript

兩個問題:

  1. 我怎麼可以格式化字符串POST考慮到Zend的規定的baseURL時(在古典情況下,我指向一個PHP文件)。
  2. 我應該怎麼做 - 最簡單的可能(我知道有幾種可能的實現) - 在操作方法中,以便返回響應。

同樣,沒有jQuery,JSON,原型或其他庫。

用例如下:我有一個窗體部分的視圖。其中一個輸入是選擇下拉列表,我點擊該列表中的一個項目,觸發控制器/操作的Ajax請求,並立即從服務器獲取一個值,用於更新文本區域。

+4

JSON是沒有庫。它是一種像XML這樣的數據格式。 – 2011-05-05 15:33:44

+1

只是想知道如果你能解釋你厭惡使用圖書館?他們寫作,以便您不必重複這樣一次又一次的'經典'js。 – HurnsMobile 2011-05-05 15:35:15

+0

關於JSON:我想讓suer不使用特殊的Zend對象。 – 2011-05-05 15:40:33

回答

1

您發佈的網址全部取決於您的控制器和模塊結構,因此我們很難爲您提供詳細的答案。但是舉個簡單的例子,試試看。

形式投遞到http://domain.com/index/textarea

控制器:IndexController.php

<?php 

class IndexController extends Zend_Controller_Action { 

    public function indexAction() { 

    } 

    public function textareaAction() { 
     // if you are using layouts 
     $this->_helper->layout->disableLayout(); 

     // process your post here 
     $var = $this->_getParam('posted_var'); 

     $this->view->text = '$var processed'; 
    } 
} 

的觀點:textarea.phtml

<?php 

echo $this->text; 

曾經是在您看來是什麼,會然後返回到您的JavaScript。

爲了更好的實現,請閱讀AjaxContext switching,這將允許您使用JSON,這意味着您可以刪除視圖文件,ZF將簡單地爲您返回一個JSON編碼的字符串。

+0

謝謝。事實上,我用你提到的相同模式來做。 AjaxContext最好不要在你想自己處理100%時使用;這是來自經驗。因此,佈局禁用和JSON編碼必須按照操作方法中的文檔完成。 – 2011-05-13 05:57:00