2011-01-27 4 views
0
var ajax = new Ajax('process.php', { 
    method: 'post', 
    data:options, 
    onComplete: function(data){ 
     alert(data); 
    } 

    }); 

process.php 대

session_start(); 
    $_SESSION['data'] = 'hello'; 
    echo $_SESSION['data']; 

index.php를

session_start(); 
    echo $_SESSION['data']; // return null 

실행 아약스 내가 "안녕하세요"경고 얻을. Ok run index.php 아무 것도 얻지 못합니다

$ _SESSION [ 'data']을 (를) 가져올 수 없습니다. 정의되지 않았습니다. 왜 ? 당신은 아약스 작업을 모르거나 더 당신이 할 수없는 경우

+0

'process.php'는 "process.php"로 인용되어야합니다. 그리고 $ _SESSION [ 'data']'를 어디에서 가져올 수 없습니까? – ThiefMaster

+0

인용문을 추가했는데, 확실히 AJAX가 성공적으로 – Chameron

+0

을 실행하고 어떤 파일이 AJAX 코드입니까? –

답변

0

은 : 테스트 파일을 만들 경우

file_put_contents('test.txt', 'its work', FILE_APPEND);

을 취하는 process.php에 을 당신이 파일을 호출 의미 그리고 만약 그 세션을 설정하지 않으려면 다음과 같이해야합니다.

세션에서 쓰기를 원할 경우 세션에서 읽기를 원할 때마다 서버의 세션 파일에서 세션 값을 다시 읽으려면 세션을 다시 시작해야합니다.

+0

나는 session_start()를 추가했지만 여전히 정의되지 않음 – Chameron

+0

정말 process.php를 호출합니까? – AmirModiri

+0

테스트를 위해 추가로 파일을 작성할 필요가 없습니다. process.php에 에코가 있으며 에코 된 텍스트가 경고로 표시됩니다. 따라서 경고 상자에 올바른 텍스트가 표시되면 ajax가 성공한 것입니다. –

0

두 가지 :

  1. 당신은 당신의 예 중이 코드를 떠난 수 있지만, 당신의 Mootools의 코드는 아약스 개체를 만듭니다. 요청을 보내려면 다음과 같이 요청 방법을 사용해야합니다.

    ajax.request();

  2. $ _SESSION [ 'data']이 (가) 원하는 값을 ajax 요청과 동일하게 보내려고합니까? 그렇다면 $ _POST 변수를보고 Ajax 객체를 통해 서버에 보내는 값을 가져온다 (왜냐하면 요청 메소드로 'post'를 설정했기 때문이다). 요청에서 보낸 값을 $ _SESSION에 설정하려면 process.php에 직접 넣어야합니다.

(당신이하려는 것과 같은 내 최고의 아이디어)이 코드를 사용해보십시오 : 자바 스크립트/Mootools의 내용은

: process.php에서

var ajax = new Ajax('process.php', { 
    method: 'post', 
    data:{'data':'hello'} 
}); 
ajax.request(); 

:

session_start(); 
$_SESSION['data'] = $_POST['data']; /* $_SESSION['data'] = 'hello'*/ 

또한 $ _SESSION [ 'data']이 (가) 표시되는 index.php 페이지에 아약스 자바 스크립트가 포함 된 경우에는 refre sh index.php를 실행하기 전에 ajax 요청에 의해 $ _SESSION에 대한 변경 사항을 볼 수 있습니다.