簡體   English   中英

codeigniter或PHP-提交特定的AJAX POST后如何轉到URL

[英]codeigniter or PHP - how to go to a URL after a specific AJAX POST submission

我已成功通過javascript的ajax帖子將數據插入到codeigniter中的數據庫中:

//JAVASCRIPT:

$.ajax({
   type: "POST",
   url: submissionURL,
   data: submissionString,
   failure: function(errMsg) {
        console.error("error:",errMsg);
   },
   success: function(data){
        $('body').append(data); //MH - want to avoid this
   }
});

//PHP:
public function respond(){
    $this->load->model('scenarios_model');
    $responseID = $this->scenarios_model->insert_response();
    //redirect('/pages/view/name/$responseID') //MH - not working, so I have to do this
    $redirectURL = base_url() . 'pages/view/name/' . $responseID;
    echo "<script>window.location = '$redirectURL'</script>";
}

但是問題是我無法使codeigniter的重定向功能正常工作,也無法使PHP的標頭定位方法正常工作,如下所述:

在PHP腳本完成時重定向到指定的URL?

還是-我猜這是因為標頭已經發送了? 如您所見,為了使其正常工作,我必須回顯一個腳本標記並將其動態插入到DOM中,這看起來很簡陋。 如何正確執行此操作?

也許您可以在響應函數中“返回” URL並在JS中使用它
PHP的:

public function respond(){
    // code
    $redirectURL = base_url() . 'pages/view/name/' . $responseID;
    return json_encode(['url' => $redirectURL]);
}


JS:

$.ajax({
   type: "POST",
   url: submissionURL,
   data: submissionString,
   dataType: 'JSON',
   failure: function(errMsg) {
        console.error("error:",errMsg);
   },
   success: function(data){
      window.location = data.url
   }
});

您必須串聯變量。 就這樣。

 redirect('controller_name/function_name/parameter/'.$redirectURL);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM