Codeigniter - 提交按钮后页面重定向不起作用

时间:2017-03-02 13:27:18

标签: javascript php jquery ajax codeigniter

我尝试使用ListView向我的控制器插入和更新数据库中的数据。现在,我点击按钮后,我的数据正在插入和更新。但我的视图页面上的数据没有更新。我需要再次刷新页面以更新我的视图和成功消息以显示

PS:有时候会解雇,有时候不会解雇,

以下是我的ajax

的JS文件
ajax

以下是我的控制器

$('#triger').click(function(){
                    var btn_value = $('#triger').val();
                    var tenant_id = $('#tenant_id').val();
                    var calldisp_id = $('#calldisp_id').val();
                    var disposition_name = $('#disposition_name').val();
                    var disposition_code = $('#disposition_code').val();
                    var email = $.map($("#tags span"), function(elem, index){
                         return $(elem).text();
                    }); 
                    var myJsonString = JSON.stringify(email);
                    //alert(myJsonString);
                        if(btn_value == 'Create'){

                            $.ajax({
                                url:"<?php echo base_url();?>admin/call_disposition/create_email_dispo_dre",
                                method:"POST",
                                data:{email:myJsonString,
                                      disposition_name:disposition_name,
                                      disposition_code:disposition_code,
                                      tenant_id:tenant_id},
                                dataType: 'json',
                                success:function(data){

                                },
                            });
                        }
                        else if(btn_value == 'Update'){
                            $.ajax({
                                url:"<?php echo base_url();?>admin/call_disposition/update_email_dispo_dre",
                                method:"POST",
                                data:{email:myJsonString,
                                      disposition_name:disposition_name,
                                      disposition_code:disposition_code,
                                      calldisp_id:calldisp_id,  
                                      tenant_id:tenant_id},
                                dataType: 'json',
                                success:function(data){


                                },
                          });
                        }

                });

3 个答案:

答案 0 :(得分:0)

在ajax更新请求中: 在成功部分:

success:function(data){
},

你需要调用页面重新加载:

window.location.reload();

所以你的代码变成了:

success:function(data){
    window.location.reload();
},

答案 1 :(得分:0)

在控制器中

你必须添加

echo json_encode(array('success'=>'1'));代替redirect('admin/call_disposition/update/'.$id);,因为您使用了数据类型&#34; json&#34;;

并更改成功函数和ajax请求类似

success:function(data){
   if(data.success=='1'){
     window.location.reload();
   }
 }

答案 2 :(得分:0)

在执行Ajax调用时的codeigniter中,您无法从控制器函数重定向。如果您想在单击#trigger后无痕地更新页面,则必须在控制器中回显结果

echo json_encode($html_you_want_to_display);

然后在你的ajax成功子句中,你需要通过将innerHtml设置为结果来更新带有echo结果的div。希望这有帮助