我有以下代码
<script language="JavaScript">
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit()
{
if (needToConfirm)
{
return 'Are you sure?';
}
else
return 'Continue';
}
这里needToConfirm只是一个标志/变量。我想要的是在if条件中插入一个php语句,并在条件为真时执行php语句。任何人都可以帮助我吗?
答案 0 :(得分:0)
不能同时使用PHP和Javascript。 AJAX 是您想要的解决方案。像:
<script language="JavaScript">
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit()
{
if (needToConfirm)
{
$.post('test.php','',function(res){
//check here response
});
return 'Are you sure?';
}
else
return 'Continue';
}
test.php 的代码:
echo $flag;// what ever it is true or false
答案 1 :(得分:0)
JavaScript在浏览器上运行。和PHP在服务器上。服务器将页面返回给客户端。因此,你无法做到这一点。
您可以将AJAX用于此类功能。
答案 2 :(得分:0)
如果我猜对了,你想向用户显示一个消息框,他必须确认他确实要离开你的页面,但是,只有在设置了特定的PHP变量时才对吗?你不需要AJAX。
<?php if ($needToConfirm === true) { ?>
window.onbeforeunload = function(){
return 'are you sure?';
}
<?php } ?>
答案 3 :(得分:-1)
你不需要Ajax(但我的解决方案有点脏:))
首先,让PHP函数返回一个值。我的Google maps API项目有一个例子:
function nullate($data){
if (empty($data)){
echo "0";
}
else{
echo $data;
}
}
以后你可以做身体
<body onload="initialize(<? nullate($_POST['north']);?>,<? nullate($_POST['east']);?>)">
我知道它脏兮兮的丑陋线条。所以要确保。我POST
将数据function initialize(lat,lng) {
if (lat==0 && lng==0){
myLatlng = new google.maps.LatLng(49.53233919502811, 17.02880859375);
}
else{
myLatlng = new google.maps.LatLng(lat, lng);
}
//....
}
发送到我漂亮的Google Maps API页面,但此构造检查是否确实发送了某些内容
然后谷歌地图javascript功能:
echo
因此,在您的情况下,条件结果必须是{{1}}到javascript函数