如何在javascript if语句中使用php

时间:2014-06-24 11:04:05

标签: javascript php

我有以下代码

<script language="JavaScript">
  var needToConfirm = true;

  window.onbeforeunload = confirmExit;
  function confirmExit()
  {
    if (needToConfirm)
    {

      return  'Are you sure?';


     }
     else 
     return 'Continue';
  }

这里needToConfirm只是一个标志/变量。我想要的是在if条件中插入一个php语句,并在条件为真时执行php语句。任何人都可以帮助我吗?

4 个答案:

答案 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函数