2010-06-07 2 views
0

내 문제는 조건이 true 일 때 창을 닫지 만 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 부분입니다 .. 당신은 자바 스크립트 블록 안에 PHP 코드를 실행하려고하는

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

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

코드를 정확히 ''태그로 묶으려고하셨습니까? – Dolph

+0

그들은 요즘 아이들을 가르치고 있습니다. :) –

+1

@Dolph 코드 블록에서 깜박임 태그를 허용하기 위해 메타에 대한 요청을 추가하고 있습니다. 얼마나 멋진가? –

답변

5

간다. PHP는 서버 측, JS는 클라이언트 측이므로 작동하지 않습니다.

JS를 통해 PHP 스크립트를 호출해야한다면 AJAX 호출을 사용할 수 있습니다. jQuery 또는 Prototype과 같은 라이브러리를 사용하면이 작업을 더 쉽게 수행 할 수 있습니다.

7

자바 스크립트가 클라이언트 측에서 실행되면 PHP가 서버에서 실행됩니다. PHP는 자바 스크립트가 실행될 때 이미 실행되었습니다.

자바 스크립트에서 서버의 기능을 실행하려면 서버 측 작업을 수행 할 PHP script을 호출 할 때 Ajax을 사용해야합니다.

코드가 이제 구성되어 방법

, 당신은이 일을하고 있습니다 :

클라이언트 요청을 -> PHP 코드 (두 쿼리를) 실행 -> 자바 스크립트 실행 -> 브라우저가 HTML과 자바 스크립트 구문 분석합니다.

당신이하고 싶은 것은 자바 스크립트가 호출 할 수있는 또 다른 PHP 스크립트를 설정하는 것입니다. 그렇게하면 원하는 작업 순서를 얻을 수 있습니다.

클라이언트 요청 -> 브라우저가 HTML과 자바 스크립트를 구문 분석 -> 자바 스크립트가 실행됩니다.
원하는 경우 시간이 지납니다.
클라이언트가 조치를 취합니다. -> 자바 스크립트가 PHP 스크립트에 Ajax 요청을합니다. -> 적절한 쿼리가 실행됩니다.

2

PHP 코드는 페이지가 제공 될 때 실행되며 브라우저가로드 한 후에 실행되는 Javascript 조건에 영향을받지 않습니다.

AJAX 전화를 원합니다.

4

모든 PHP 코드는 클라이언트 (브라우저)로 보내어 표시되기 전에 서버에서 실행됩니다. 당신은 조건부로 자바 스크립트를 통해 PHP를 실행할 수 없습니다. 그러나 AJAX을 Javascript의 서버와 통신 할 수 있습니다. 예를 들어

(이 의사입니다) :

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

모든 자바 스크립트 프레임 워크 라이브러리 (등 프로토 타입, jQuery를) AJAX 기능을 제공합니다.

관련 문제