2014-04-01 3 views
-3

내가 무슨 말을 해야할지 모르겠지만, 그 세션 변수가 설정되어 있고 값 1을 가지고 있다면 배너 변수를 가진 배너가 있습니다. 그런 다음 그 배너를 표시했습니다. 그 배너를 숨길 버튼이 있고 그 버튼을 클릭하여 자바 스크립트 함수를 호출했습니다.페이지로드시 PHP 코드로드를 방지 할 수 있습니까?

그래서 간단한 자바 스크립트 함수를 만들고 php 태그를 사용하여 세션 변수의 설정을 해제했습니다. 또한 ajax를 사용하여 세션 변수를 설정 해제 할 수 있습니다. 하지만 그 기능으로 아약스 호출을해야하는 이유를 생각하고있었습니다.

난 일부 코드를 가지고

<?php if($_SESSION['SHOW_BANNER']==1){ ?> 

    <div id="banner">Banner goes here</div> 
    <button onclick="hideit()">Hide</button> 

<?php } ?> 

여기 JQuery와 함수이다

<script> 
    function hideit() 
    { 
     <?php unset($_SESSION['SHOW_BANNER']); ?> 
     $("#banner").hide(); 
    } 
</script> 

제가 페이지를 새로 고침 할 때마다 세션 변수를 설정한다. 도움말 ...

+1

이가 설정 될 것입니다 실행합니다. 저것을 막는 아무 방법도 없다. – D4V1D

+0

안녕하세요 Quentin .. 제 질문을 읽으셔야하고 다시 한 번 참고 문헌을 제공해 주셨으면합니다. 둘 다 다릅니다. 내 경우에는 PHP 코드가 실행되고 있지만 PHP 코드가 참조 된 질문에서 작동하지 않습니다. –

+0

아약스를 사용해야한다고 생각합니다. 스티브에게 감사합니다. –

답변

1

JavaScript에서 직접 PHP 코드를 실행할 수 없습니다. 페이지가 서버 측에서 렌더링 할 때 PHP 코드가 실행되고, 당신은 같은 구문이있는 경우 :

function hideit() 
{ 
    <?php unset($_SESSION['SHOW_BANNER']); ?> 
    $("#banner").hide(); 
} 

을 페이지가로드되고이 코드의 결과는 자바 스크립트로 반환 될 때이 설정되지 않은 모든 시간을 실행합니다. 세션 변수를 설정 해제하는 유일한 방법은 서버 측에서 코드를 실행하는 것입니다. 단순히 ajax 호출만으로이 작업을 수행 할 수 있습니다.

function hideit() 
{ 
    $("#banner").hide(); 
    $.get("hideBanner.php"); 
} 

그리고 hideBanner.php에서

은 PHP 코드는 서버에서 페이지를 다시로드 할 때마다 구문 분석으로 물론

<?php unset($_SESSION['SHOW_BANNER']); ?> 
+0

네 보스 .. 감사합니다. –

관련 문제