2010-06-07 90 views
0

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

这里去我的代码..

<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

你究竟想通过''标签包装你的代码来完成什么? – Dolph 2010-06-07 15:55:21

+0

这些天他们在教孩子们什么...... :) – 2010-06-07 16:01:10

+1

@Dolph我在Meta上添加了一个请求,允许在代码块中使用blink标签,这真是太棒了:) – 2010-06-07 16:02:58

回答

5

您试图执行一个JavaScript块中的PHP代码。 PHP是服务器端,JS是客户端,所以这不会工作。

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

7

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

如果您希望使用Javascript来执行服务器上的功能,那么您需要使用Ajax拨打PHP script,该服务将为您执行服务器端操作。

现在您的代码的构造方式,你这样做是:

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

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

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

2

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

你想要一个AJAX电话。

4

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

例如(这是):

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

所有JavaScript框架库(原型,jQuery的,等)提供AJAX功能。