0

我的问题是,当条件为真时,它将关闭窗口但不执行 php 部分!

这是我的代码..

<script type="text/javascript">  
function onClose()  
{  
var r=confirm("Is the meeting Over!");  
if (r==true)
 {  
<?php $result=mysql_query($sql);?>  
window.close();  
 }  
else  
 {  
<?php $result2=mysql_query($sql2);?>    
 }  
}  
</script>  

这是php部分..

$sql="UPDATE previousmeetings SET Live='0' WHERE MeetingID='34'"; //$meeting_id  

$sql2="UPDATE previousmeetings SET Live='1' WHERE MeetingID='34'";
4

4 回答 4

7

Javascript 在客户端执行,PHP 在服务器上执行。当您的 Javascript 运行时,PHP 已经被执行。

如果您希望 Javascript 在服务器上执行功能,那么您需要使用Ajax调用PHP 脚本,该脚本将为您执行服务器端操作。

现在构建代码的方式是:

客户端请求 -> 执行 PHP 代码(两个查询) -> 浏览器解析 HTML 和 Javascript -> 执行 Javascript。

您要做的是设置另一个您的 Javascript 可以调用的 PHP 脚本。这样你就可以得到你想要的操作顺序:

客户端请求 -> 浏览器解析 HTML 和 Javascript -> 执行 Javascript。
如果需要,时间会过去
客户端采取行动 -> Javascript 向 PHP 脚本发出 Ajax 请求 -> 执行适当的查询。

于 2010-06-07T15:48:24.350 回答
5

您正在尝试在 javascript 块中执行 PHP 代码。PHP是服务器端,JS是客户端,所以这行不通。

如果您需要通过 JS 调用 PHP 脚本,您可以使用 AJAX 调用,jQueryPrototype等库将使这更容易。

于 2010-06-07T15:47:32.480 回答
4

所有 PHP 代码都在服务器上执行,然后发送到客户端(浏览器)进行显示。您不能像那样通过 Javascript 有条件地执行 PHP。但是,您可以使用AJAX从 Javascript 与服务器通信。

例如(这是伪代码):

if (r==true)
{
  ajax_request("perform query 1");
  window.close();
}
else
{
  ajax_request("perform query 2");
}

所有 Javascript 框架库(Prototype、jQuery 等)都提供 AJAX 功能。

于 2010-06-07T15:48:51.420 回答
2

PHP 代码在页面提供时执行,它不受浏览器加载后执行的 Javascript 条件的影响。

你想要一个AJAX调用。

于 2010-06-07T15:48:38.677 回答