2011-04-08 4 views
1

<?php ?> 태그를 자바 스크립트에서 사용할 수 있습니까? 그렇다면 다음 질문은; 이 태그에서 세션을 사용할 수 있습니까? 예 :<?PHP ?> 태그는 자바 스크립트에서 사용할 수 있습니다

success:function(data) 
{        
    if(data) 
    { 
    <?php 
     if(isset($_SESSION['UserId'])) 
     { ?> 
      window.location.href="coll_delivery_det.php"; 
     } 
     else 
     { 
    ?>              window.location.href="courier.php"; <?php 
     } 
    } ?> 
} 
+4

페이지 인 경우'당신은 .php' otherwi 수 있습니다 아니, –

+1

그게 .php가 아니야. 확장자는 할 일이 없다 .. – pleasedontbelong

+0

@pleasedontbelong'.php'에 의해 나는 PHP 스크립트 –

답변

0

예, PHP는 HTML, CSS 및 JavaScript도 생성 할 수 있습니다. 당신이 PHP가 다른 텍스트로 자바 스크립트를 생성하는 것을 기억해야하지만

function() { 
    <?php if($data) { ?> 
    window.location.href="coll_delivery_det.php"; 
    <?php } else { ?> 
    window.location.href="courier.php"; 
    <?php } ?> 
} 

을, 그래서 당신은 PHP 스크립트에서 자바 스크립트 변수를 사용할 수 없습니다 : 그래서 당신은 당신의 .PHP 페이지에 그런 일을 할 수 있습니다. 예. 그런 경우 작동하지 않습니다.

function test(){ 
    var r=1; 
    <?php if ($r==1){ ?> 
    alert('r = 1'); 
    <?php }?> 
} 
+1

데이터는 PHP 변수가 아닌 Javascript 변수입니다. 그리고 PHP 변수는'$ var'로 사용됩니다. – anubhava

+0

예, 방금 발견 한 내용과 답변을 편집했습니다 – Ivan

0

예. 그러나 페이지가 실제 PHP 페이지로 실행되는 경우에만 가능합니다. 당신은 내가 너무 좋아, templatish 문을 사용하는 것이 좋습니다 자바 스크립트 나 HTML을 통해 PHP 코드를 사용하는 경우

:

<?php if ($someVariable) : ?> 
var i = 0; 
<?php else : ?> 
var i = 2; 
<?php endif; ?> 

그것은 훨씬 더 명확 폐쇄 무엇 문 수 있습니다. 다음과 같은 대신 :

<?php if ($someVariable) { ?> 
var i = 0; 
<?php } else { ?> 
var i = 2; 
<?php } ?> 
9

나는 당신이 당신의 자바 스크립트 명령을 반향하는 PHP를 사용하고 싶지 무엇을 이해합니다.

success:function(data) 
{        
    if(data) 
    { 
    <?php 
     if(isset($_SESSION['UserId'])) 
     { 
      echo "window.location.href=\"coll_delivery_det.php\";"; 
     } 
     else 
     { 
      echo "window.location.href=\"courier.php\";"; 
     } 
    } ?> 
} 
+0

답장을 보내 주셔서 감사합니다. – Ruchi

1

예 PHP에서 실행되지만 내 코드가 구문 상 올바르지 않은 파일 내에서이 작업을 수행하는 경우에만 가능합니다. 대신 다음과 같이 시도하십시오.

success:function(data) {        
    if(data) { 
    <?php if(isset($_SESSION['UserId'])) { ?> 
      window.location.href="coll_delivery_det.php"; 
     <?php } else { ?> 
      window.location.href="courier.php"; 
     <?php } ?> 
    } 
} 

다른 방법으로는 사용할 수 없습니다. Javascript 변수는 사용자 브라우저가 Javascript를 실행하는 시점에서 PHP 실행주기가 종료 될 때 PHP 코드에서 사용할 수 없습니다. 이런 방식으로 다시 전달하는 유일한 방법은 Ajax 요청을하는 것입니다.

는 또한 PHP는 한 번만 실행됩니다 그래서 $_SESSION['UserId'] 다음 설정되어있는 경우 코드를 사용하여 각 페이지로드는 사용자의 브라우저는 볼 것이다 :

success:function(data) {        
    if(data) { 
      window.location.href="coll_delivery_det.php"; 
    } 
} 

을 단지에서 렌더링되는 설정되어 있지 않으면 경우 PHP로 : 당신의 PHP 코드에서 생성되는 자바 스크립트 이런 식으로

success:function(data) {        
    if(data) { 
      window.location.href="courier.php"; 
    } 
} 

.

1

사실 JavaScript에서는 PHP 태그를 사용할 수 없습니다.

은 전체 JS 코드 또는 PHP를 사용하여을 생성하거나 일부 데이터 만 생성 할 수 있습니다.

1

여기에 게시 된 특정 해결책은 현재 상황을 해결하기위한 것으로, 그 배경에 대한 추론을하고 싶습니다.

자바 스크립트 로직이 브라우저에서 실행됩니다. PHP 로직이 서버에서 실행됩니다.

자바 스크립트에 조건부 PHP 문을 직접 포함시키지 않아도 원하는대로 처리 할 수 ​​있지만 PHP를 사용하여 브라우저에서 실행해야하는 javascript를 생성 할 수 있습니다.

0

당신이 아파치를 사용하는 경우 다음과 같은 내용을 사용하여 자바 스크립트 디렉토리에 .htaccess 파일 만들 수 있습니다

AddHandler php-cgi .js 

이 당신의 .js는 PHP로 실행 파일을 만들지 만, 원래의 확장자를 유지됩니다.

0

가장 쉬운 방법은 동적 자바 스크립트를 생성하고 자바 스크립트 헤더를 포함하는 페이지를 만드는 것입니다.

mysite.com/js.php

<?php header("Content-type: application/x-javascript");?> 
success:function(data) {        
    if(data) { 
    <?php if(isset($_SESSION['UserId'])) { ?> 
      window.location.href="coll_delivery_det.php"; 
     <?php } else { ?> 
      window.location.href="courier.php"; 
     <?php } ?> 
    } 
} 

하지만 당신은 아마 그렇게 돼요 .. 브라우저 캐시에 포함 된 자바 스크립트 파일을 저장하고 당신은 몇 가지 문제가있을 수 ..

진행하는 가장 좋은 방법은 당신의 js 파일을 분리해야하고 내부의 기능 또는 <script> 태그를 사용하여 클래스에 몇 가지 매개 변수를 전달하는 것입니다 <header>

관련 문제