我有一张表格在他们的表格中有一个取消按钮。当单击该按钮时,将出现一个确认框,询问用户是否需要离开页面,然后我需要重定向页面。我正在使用codeigniter而我这样做但是它重定向到同一页面。我不知道为什么?有谁可以帮助我?
查看(busineeRateView.php)
<?php $Vehicleid=$details['id']; ?>
<input type="submit" name="cancelreview" class="btn btn-primary btn-lg" value="CANCEL" onClick="return cancelConfirm();">
<script>
function cancelConfirm() {
job = confirm("Are you sure you want to cancel and leave this page?");
if (job == true) {
window.location.href = "http://localhost/ci/adpreview_ctrl/getad_preview/".$Vehicleid;
return true;
}
}
</script>
控制器
public function loadReviewPage($vehicleid){
$data=array();
$data['details']['id']=$vehicleid;
$this->load->view('pages/templates/header');
$this->load->view('pages/businessRateView',$data);
$this->load->view('pages/templates/footer');
}
答案 0 :(得分:4)
由于您从事件处理程序中return true
,因此提交按钮会提交表单。
由于在location
分配之后,它会覆盖它。
提交表单将重新加载当前页面(假设表单没有action
属性,并且提交的数据不会导致服务器返回不同的页面。)
请勿使用提交按钮。您的JavaScript只是模拟链接,所以请使用真实的链接。
<a class="btn btn-primary btn-lg"
href="http://localhost/ci/adpreview_ctrl/getad_preview/$Vehicleid"
onclick="return cancelConfirm();">
Cancel
</a>
和
function cancelConfirm(){
return confirm("Are you sure you want to cancel and leave this page?");
}
注意:您似乎在示例中留下了一些PHP。确保您在有效的HTML / JS中表达您的URL。
答案 1 :(得分:1)
这条线令人困惑:
window.location.href = "http://localhost/ci/adpreview_ctrl/getad_preview/".$Vehicleid;
似乎你混合了javascript和php。在JS中连接字符串是用+完成的,而不是。这是php语法。和$ Vehicleid这样的PHP变量不能直接在JS中访问。尝试使用php块。像:
window.location.href = "http://localhost/ci/adpreview_ctrl/getad_preview/" + "<?= $Vehicleid; ?>";
答案 2 :(得分:0)
我想也许你使用了错误的操作。你应该使用'+'而不是'。'在javascript字符串操作中。 ''用于php:)
window.location.href = "http://localhost/ci/adpreview_ctrl/getad_preview/" + $Vehicleid;