我的问题是,当条件为真时,它将关闭窗口但不执行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'";
答案 0 :(得分:7)
Javascript在客户端执行,PHP在服务器上执行。运行Javascript时已经执行了PHP。
如果您希望Javascript在服务器上执行功能,那么您需要使用Ajax来调用PHP script来为您执行服务器端操作。
现在构建代码的方式,你这样做:
客户请求 - &gt;执行PHP代码(两个查询) - &gt;浏览器解析HTML和Javascript - &gt; Javascript已执行。
您要做的是设置Javascript可以调用的另一个PHP脚本。这样您就可以获得所需的操作顺序:
客户请求 - &gt;浏览器解析HTML和Javascript - &gt; Javascript被执行。
如果需要,时间过去
客户采取行动 - &gt; Javascript向PHP脚本发出Ajax请求 - &gt;执行适当的查询。
答案 1 :(得分:5)
您正在尝试在JavaScript块中执行PHP代码。 PHP是服务器端,JS是客户端,所以这不会工作。
答案 2 :(得分: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功能。
答案 3 :(得分:2)
PHP代码在页面提供时执行,它不受浏览器加载后执行的Javascript条件的影响。
您想要AJAX来电。