重定向在codeigniter

时间:2015-06-28 16:44:46

标签: php jquery ajax codeigniter

Halo,我正在使用ajax将表单发布到控制器codeigniter中。我想在ajax发布后重定向,但控制器没有重定向。

这是我的ajax

    $.ajax({
        type:"POST",
        url:form.attr("action"),
        data:form.serialize(),

        success: function(){

         },
        error: function(){
        alert("failure");
        }
    });
  });
});

这是我的控制器

public function checkout_data(){
    $this->account_model->checkout_simpan();
    redirect('produk/payment/last_steps');
}

这是我的表格

<form class="form-horizontal col-md-offset-3" id="form-checkout" action="<?php echo base_url('produk/payment/checkout_data');?>">

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:0)

你这样做错误

你现在在做什么: 当您向服务器发送ajax-request时,会执行方法checkout_data,并在其中重定向到另一个URL。但它适用于服务器。因此,在重定向到produk/payment/last_steps之后,执行方法last_steps(或绑定到此URL的任何内容),并将其内容返回给ajax-request。

您需要做什么:

使用javascript函数重定向。通常它是document.location 例如。 document.location = "some/new/url"。 所以我想你的checkout_data方法应该返回一些字符串。包含重定向的URL。例如:

public function checkout_data(){
    $this->account_model->checkout_simpan();
    echo 'produk/payment/last_steps';
}

ajax成功后,你可以使用:

success: function( data ) {
    // console.log( data ) // uncomment to check what is received
    document.location = data; 
},

答案 1 :(得分:0)

1)正确检查您的路径 2)(重要)检查您的控制器中是否有多余的空间