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 に答える