如何在javascript if语句中使用php
我有以下代码如何在javascript if语句中使用php,javascript,php,Javascript,Php,我有以下代码 <script language="JavaScript"> var needToConfirm = true; window.onbeforeunload = confirmExit; function confirmExit() { if (needToConfirm) { return 'Are you sure?'; } else return 'Continue'; }
<script language="JavaScript">
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit()
{
if (needToConfirm)
{
return 'Are you sure?';
}
else
return 'Continue';
}
这里需要确认的只是一个标志/变量。我想要的是在if条件中插入一条php语句,并在条件为true时执行php语句。有人能帮我吗?不能同时使用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';
}
JavaScript在浏览器上运行。以及服务器上的PHP。服务器将页面返回给客户端。因此,你不可能做到这一点
您可以使用AJAX实现这类功能。如果我猜对了,您希望向用户显示一个消息框,用户必须在其中确认他确实想要离开您的页面,但只有在设置了特定PHP变量的情况下,对吗?你不需要AJAX
<?php if ($needToConfirm === true) { ?>
window.onbeforeunload = function(){
return 'are you sure?';
}
<?php } ?>
您不需要Ajax,但我的解决方案有点脏: 首先,让PHP函数返回一个值。我的谷歌地图API项目中有一个例子:
function nullate($data){
if (empty($data)){
echo "0";
}
else{
echo $data;
}
}
以后在身体里你可以这样做
<body onload="initialize(<? nullate($_POST['north']);?>,<? nullate($_POST['east']);?>)">
因此,在您的情况下,条件结果必须回显到javascript函数您需要使用AJAX,但我不知道AJAX。你能告诉我我可以在这里使用的ajax的一个具体功能吗?你能告诉我你把这个JS代码放在哪里吗?我的意思是放在任何PHP Web Page.PHP文件的.JS文件中吗?我猜你想得太多了。OP需要一个条件,这取决于当前视图,而不是某些服务器response@lordvladop希望检查标志变量,以便op可以在ajax中签入后端get响应您不能将ajax用于window.onbeforeunload,因为ajax是异步的,而onbeforeunload是同步的。我对ajax代码感到困惑。对不起,我真的是个笨蛋。有人能解释一下吗?@Manwal如果你知道window.onbeforeunload的功能,你就会知道,至少对初学者来说,调用ajax是没有意义的。twindow.alert证明你错了。这信息太多,对初学者毫无帮助
<body onload="initialize(<? nullate($_POST['north']);?>,<? nullate($_POST['east']);?>)">
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);
}
//....
}