[英]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的標頭定位方法正常工作,如下所述:
還是-我猜這是因為標頭已經發送了? 如您所見,為了使其正常工作,我必須回顯一個腳本標記並將其動態插入到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.