如何在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);
}
//....
}