2013-08-01 47 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,因为在我的控制器中... –