2011-01-27 16 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

あなたはAjaxの仕事や何も知らないしていない場合は、この操作を行うことができます。 テストファイルがその場合は、ファイル を呼び出す意味し、それを作成した場合

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

を取るprocess.phpでセッションを設定しないでください。

セッションに書き込みを行いますが、セッションを読み込みたい場合は、セッションから読み込みたいときはいつでも、セッションファイルの セッション値を再度読み取る必要があります

+0

私はsession_start()を追加してまだ定義されていません – Chameron

+0

あなたは本当にあなたがprocess.phpを呼び出すのですか? – AmirModiri

+0

テストのための追加ファイル書き込みの必要はありません。 process.phpにエコーがあり、エコーされたテキストがアラートによって表示されます。したがって、アラートボックスに正しいテキストが表示されていれば、ajaxは成功しました。 –

0

2つのこと:

  1. あなたは自分の例のうち、このコードを残しているかもしれませんが、あなたのMooToolsのコードはAjaxオブジェクトを作成します。リクエストを送信するには、リクエストメソッドを使用する必要があります。

    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ページにajax javascriptが含まれている場合は、refre sh index.phpを実行してから、$ _SESSIONへの変更を確認してください。

関連する問題