2010-06-07 27 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功能。