2012-08-09 84 views
0

歡迎。 {{Solved}} 爲了獲得POST數據,您必須使用$ this-> formHidden來保存所有數據。即使變量在裏面,如果它們不在某種形式的項目中,它們也不會被傳遞。ZEND:無法訪問發佈數據

我無法訪問ZEND中的發佈數據。用戶的

路徑 - START INDEX PAGE - >提交頁面 - >支付頁面

我創建了一個控制器,擴展了Zend控制器,並添加了名爲payAction動作。用戶可以從索引頁面到提交頁面。將所有數據存入變量後,我使用表單和提交按鈕進入「付費頁面」。但是,我無法獲取任何POST數據。

public function payAction() 
{ 
$data = $this->getRequest(); 
} 

我試過把getRequest,getParam,getRawBody放在那個控制器函數裏面。 在頁面本身,我嘗試過。

echo 'Hello'; 
    echo $request; 
    echo $data; 
    echo $_POST['payZip']; 
    echo $_POST['data']; 
    echo $_POST[$data]; 
    echo $request; 
    echo $this->values['payZip']; 
    echo $payZip; 
    echo $this->values['shippingDone']; 
    echo $stuff; 

是否有任何我可以放置在我的控制器或我的視圖中以獲取我的發佈數據?我使用了form method =「post」和一個按鈕,它可以讓我進入頁面。我可以看到你好。但是沒有任何後期數據可用。

任何援助將不勝感激。

謝謝。

- 更新

$data = $this->getRequest(); 
    $param = $this->_request->getParam('payZip'); 

    if($this->getRequest()->isPost()) 
    { 
    print_r($this->_getAllParams()); 
    echo $param; 
    } 

這樣做,讓我 - HelloArray([控制器] =>輪[動作] =>薪酬[模塊] =>默認[運輸] => UPS地面[PAYPAL] =>安全支付系統)

但我仍然無法打印payZip ......我沒有迴應,沒有出來。

+0

我更新了我的答案,因爲我注意到你如何在那裏呼應的東西了。請參閱下面的「編輯」部分。我會在我的答案中加入一些更詳細的信息以獲得更好的解釋。 – jmbertucci 2012-08-09 20:34:46

回答

0

要想從Zend Framework的參數,你需要做到這一點的動作控制器:

$data = $this->_request->getParams(); 

你也可以得到這樣

$param = $this->_request->getParam('payZip'); 

出現什麼你做錯了,是你個人PARAMS只有獲得「請求對象」。您需要調用該對象方法來獲取請求數據。

下面是一些簡單的代碼我測試的參數時,經常使用:

public function indexAction() 
{ 
    #::DEBUG:: 
    echo '<pre>'; print_r($this->_request->getParams()); echo '</pre>'; 
    #::DEBUG:: 
} 

這將顯示你所有的參數。你會注意到你也會得到Module,Controller和Action的名字和你的參數。

編輯

詩篇。如果你想使用該參數在視圖腳本,你需要這樣做:

echo $this->data['payZip']; 

echo $this->param; 

在動作控制器,您這樣做,您的數據保存到「視圖」對象:

$this->view->myVariable = 'Hello'; 

但是當你在一個視圖腳本中,你是IN的視圖腳本,所以$this代表$this->view從動作控制器。

所以,你訪問這樣的變量:

echo $this->myVariable; 

結束語一切都變成一個更大的代碼塊的理解:

控制器

public function indexAction() 
{ 
    // get all parameters and pass them to the view 
    $this->view->params = $this->_request->getParams(); 
    // get an individual parameter and pass it to the view 
    $this->view->payZip = $this->_request->getParam('payZip'); 
} 

視圖腳本

<!-- Dump all parameters --> 
<pre><?php print_r($this->params); ?></pre> 
<!-- Print payZip --> 
<p>My PayZip is: <?php echo $this->payZip; ?></p> 
<!-- Print payZip from full parameter array --> 
<p>My PayZip (array) is: <?php echo $this->data['payZip']; ?></p> 

我希望有幫助!

+0

我用了你的調試功能,它打印[控制器] =>輪 [動作] =>支付 [模塊] =>默認 [運輸] => UPS地面 [PAYPAL] =>安全支付系統 – ILikeTurtles 2012-08-09 20:36:51

+0

我得到了它想通了。非常感謝。每個變量HAS都以$ this-> formHidden的形式出現。我會更新我的問題以反映這一點。 – ILikeTurtles 2012-08-09 20:54:22