2013-08-01 150 views
0

我得到了一個窗體與jqgrid裏面,當用戶點擊提交我想提交數據到控制器。 這裏是我的形式jQuery發送ajax發佈到zend控制器動作問題

<form method='POST' > 
<div class="st-form-line" style="z-index: 680;"> 
<span class="st-labeltext">Tags da ronda:</span> 



<table id="toolbar2"></table> 
<div id="ptoolbar2"></div> 


<div class="clear" style="z-index: 670;"></div> 
</div> 
<div class="st-form-line" style="z-index: 680;"> 
<span class="st-labeltext">Nome da ronda:</span> 

<input type="text" name="nomeronda" id="nomeronda"> 




<div class="clear" style="z-index: 670;"></div> 
</div> 
<div class="st-form-line" style="z-index: 680;"> 
<span class="st-labeltext">Tag Inicial:</span> 


<select id="tagini" name="tagini"> 
</select> 
<div class="clear" style="z-index: 670;"></div> 
</div> 
<div class="st-form-line" style="z-index: 680;"> 
<span class="st-labeltext">Tag Final:</span> 


<select id="tagfim" name="tagfim"> 
</select> 
<div class="clear" style="z-index: 670;"></div> 
</div> 
<div class="st-form-line" style="z-index: 680;"> 
<span class="st-labeltext">Ordem:</span> 


<select id="ordem" name="ordem"> 
<option value="Sim">Sim</option> 
<option value="Não">Não</option> 
</select> 
<div class="clear" style="z-index: 670;"></div> 
</div> 
<div class="button-box" style="z-index: 460;"> 
<input id="button" class="st-button" type="submit" value="Submit" name="button"> 
<input id="button2" class="st-clear" type="reset" value="Cancel" name="button"> 
</div> 
</form> 

現在,當用戶點擊提交按鈕,它激活了這段JavaScript代碼

<script language = "Javascript"> 
$(document).ready(function() { 
$("‪#‎button‬").click(function(){ 
var param1 = 'first'; //or get value from some DOM element 
var param2 = 'second'; //or get value from some DOM element 

$.ajax({ 
url: '/rondas/choosetags/', 
type: 'POST', 
data: {param1: param1, param2:param2 }, 
dataType: "json" 
}); 

}); 
}); 
</script> 

所以,當按鈕被按下提交,我做一個AJAX調用一個控制器名稱rondas ,以及操作名稱choosetags .. 在這個動作中im試圖查看請求是否發佈並提醒已發送的數據的數據以查看它是否正在工作。

if ($this->_request->isPost()) 
{ 
$this->view->layout()->disableLayout(); 
$this->_helper->viewRenderer->setNoRender(true); 

$param1 = $this->_request->getParam('param1'); 
$param2 = $this->_request->getParam('param2'); 
echo '<script>alert("'.$param1.'")</script>'; 
} 

問題是我的警報是空白的..警報被觸發但$ param1值爲空。 我的問題是什麼... 我試過不同的解決方案在這裏找到,但我不能看到$ param1的警報。 在此先感謝...

+0

在Chrome/Firefox中的控制檯,你可以看到是否參數是否正與請求一起發送?在Chrome中,此類信息位於「網絡」選項卡下... –

+0

我正在檢測該帖子,但發送的參數是表單的輸入字段,而不是參數。 –

回答

0

可能比較容易,如果你序列化的形式並把它作爲一個字符串http://api.jquery.com/serialize/

+0

根據頁面,序列化發送給我的每個值與「名稱」,我想jqgrid行裏面,解決這個問題的一種方法是創建一個輸入隱藏字段,並與JavaScript加載行id在上,然後與序列化提取所有領域,但我的問題仍然保持,不能通過$ .ajax發送參數。 –

+0

所以代碼工作知道,我需要創建一個名爲saveronda的新動作,並將URL更改爲/ rondas/saveronda,因爲在我的控制器中... –