所以我想要做的是,在用户提交一些信息后,我打电话给动作调用saveronda,保存数据库中的信息,保存后我想重定向到另一个页面,根据firebug html是正确的,但视图并不令人耳目一新。 所以这是代码 所以在我的/ rondas / chooseronda我得到了这个
<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>
当用户按下按钮提交我正在对/ rondas / saveronda进行ajax调用并发送一些数据时,这里是代码:
<script language = "Javascript">
$(document).ready(function() {
$("#button").click(function () {
/*
$.ajax({
url: '/rondas/saveronda',
type: 'POST',
data: {param1: param1, param2:param2 },
datatype: "json"
*/
//buscar o nome
/*var nomeronda=$("#nomeronda").val();
//buscar a ordem
var ordem=$("#ordem").val();
//tag inicial e tag final
var taginicial=$("#tagini").val();
var tagfinal=$("#tagfim").val();
if(taginicial==tagfinal)
{
alert("a tag inicial não pode ser a mesma que a tag final");
}
else
{
var tags="";
//var allRowsOnCurrentPage = $('#toolbar2').getDataIDs();
var ids = $("#toolbar2").jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++)
{
var rowId = ids[i];
var rowData = $('#toolbar2').jqGrid ('getRowData', rowId);
tags=tags+rowData.id_tag.toString()+' ';
}*/
$.ajax({
url: '/rondas/saveronda',
type: 'POST',
data: {param1: "sasa"},
datatype: "json"
});
//}
});
});
</script>
在这种情况下,我发送值为“sasa”的param1,并通过firebug我检测到/ rondas / saveronda的帖子。 保存数据后我想将用户重定向到/ rondas / list,所以我一直在尝试不同的解决方案
public function saverondaAction()
{
// action body
/*
if($this->_request->isXmlHttpRequest())
{
$param1 = $this->_request->getParam('param1');
$param2 = $this->_request->getParam('param2');
$param3 = $this->_request->getParam('param3');
$param4 = $this->_request->getParam('param4');
$param5 = $this->_request->getParam('param5');
$rondasModel= new Application_Model_Ronda();
$this->_forward('list', 'rondas');
}
*
*/
$this->_helper->redirector->gotoRoute(
array(
'controller' => 'rondas',
'action' => 'list'
)
);
}
或使用重定向或转发.. 没有人工作,视图仍然是/ rondas / choosetags而不是/ rondas / list
我的错误是什么...... 提前谢谢..
答案 0 :(得分:1)
当用户按提交时,您的初始视图为/rondas/chooseronda
,您对/rondas/saveronda
进行了ajax调用并向其发送了一些数据。现在,如果此操作成功,您希望从初始页面(/rondas/chooseronda
)重定向到/rondas/list
。
如果在操作/rondas/saveronda
中编写的重定向代码不起作用,那么您可以将成功消息返回到初始视图(/rondas/chooseronda
),在那里您需要检测成功消息在jQuery ajax代码中。如果成功,请将重定向jQuery代码放入/rondas/list
。