2010-02-24 3 views
0

SESSION 변수 쇼는 그 전에 정의

Index.php는

은 디자인이 내 사이트입니다 .. 세션 변수가 정의하기 전에 "표시"되어 있는지하는 문제와 함께 서와 있다는 것을 내부 프레임. 이제 index.php를이있다 : 프레임 내부

<div id='message2' onclick="closeNotice2()" style="display: none"> 
<? echo $_SESSION["user_message_123456"]; ?> 
</div> 

을 user_message_123456에 데이터를 저장하는 insert.php있다. , 난 그렇게하고 싶지,이 저장되기 전에

는 지금, 그것은 정의되지 않은 표시됩니다 ..하지만 저장 한 후 페이지를 새로 고칠 때까지 여전히 정의에 표시됩니다 ..

을하지만, 세션을 저장하면 세션이 표시되고 페이지를 새로 고칠 필요가 없습니다 (f5).

index.php를로드 할 때 $ _SESSION 변수를 호출하고 insert.php, 을 실행하지 않았 으면 정의되지 않았으므로이 작업을 수행하는 다른 방법을 찾고 싶습니다.

아이디어가 있습니까? 예? 보여줘, 제발!

답변

0

원하는 작업을 수행하는 것이 특히 바람직하지 않습니다. 다른 페이지 이후에로드 된 페이지는 정확히 되돌아 가서 과거를 변경할 수 없습니다.

프레임이 접근 방식의 핵심 부분이라고 확신한다면 크로스 프레임 자바 스크립트를 사용해야 두 문서가 통신 할 수 있습니다. 그러나이 작업을 불필요하게 만들려면 응용 프로그램 흐름을 수정해야 할 수도 있습니다. 필요하지 않을 때 Javascript에 따라 현명하지 못합니다.

0

다시로드하지 않고 외부 프레임에 새로운 내용을 표시하려면 간단한 JavaScript를 사용해야합니다.

<script type="text/javascript"> 
    var container = parent.document.getElementById('message2'); 
    container.innerHTML = '<?=$_SESSION["user_message_123456"]?>'; 
</script> 

몇 가지 팁 :

  • 이 설정됩니다

    은 이미 $ _SESSION 배열에 값을 쓴 일부에, 당신의 insert.php 파일에 다음 스크립트를 추가합니다 <div id='message2'...의 내용을 변수의 값으로 변경하십시오.
  • 가 작동하지 않는 경우, </script> 종료 태그 전에 다음 줄을 추가합니다 :

    alert('Script is working'); 
    

    부하를 insert.php 때 메시지 팝업을 보면 지금 확인. 그렇지 않으면 스크립트가 실행되고 있지 않음을 의미합니다. 이 <head> 내부 또는 단지 말 이전에 하나 배치되도록 코드를 이동 </body></html>

희망이 도움이

+0

'container.innerHTML = '<= $ _ SESSION [ "user_message_123456"]?>'; ' 뭐? –

+0

@arxanas PHP [짧은 오픈 태그] (http://www.php.net/manual/en/language.basic-syntax.phpmode.php)입니다. ''은''. 이 경우 세션 변수의 값을 JavaScript 문자열로 출력합니다. – MrFusion

+0

나는 그것을 알았지 만 코드가 호출 될 때 Javascript가'$ _SESSION' 값을 얻길 바랬습니다. 내 실수 야. 미안해.(그러나 짧은 태그 사용은 권장하지 않습니다.) –