查看zend重定向后没有刷新

时间:2013-08-07 15:04:16

标签: zend-framework

所以我想要做的是,在用户提交一些信息后,我打电话给动作调用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

我的错误是什么...... 提前谢谢..

1 个答案:

答案 0 :(得分:1)

当用户按提交时,您的初始视图为/rondas/chooseronda,您对/rondas/saveronda进行了ajax调用并向其发送了一些数据。现在,如果此操作成功,您希望从初始页面(/rondas/chooseronda)重定向到/rondas/list

如果在操作/rondas/saveronda中编写的重定向代码不起作用,那么您可以将成功消息返回到初始视图(/rondas/chooseronda),在那里您需要检测成功消息在jQuery ajax代码中。如果成功,请将重定向jQuery代码放入/rondas/list