0

私はほぼ 1 年間 PHP を使用していますが、数日間混乱する問題に遭遇しました。ご存知のように、Ajax を使用して変数を PHP に渡し、表示用の応答を取得できます。しかし、あるコードブロックから別のコードブロックに変数を取得するにはどうすればよいでしょうか? さて、私の問題をコードで説明しましょう。私のコードはサイズが非常に大きいため、単純化したバージョンをここに配置しました。

<?php
  $array = [1,2,3,4,5];
//first Ajax call
if(isset($_POST['id'])){
    $id = $_POST['id'];
    $value= $_POST['value'];
    $array[$id] = value; //The first call is mainly to update the value of $array
    echo $value;
    exit();
}

//Second Ajax call
if(isset($_POST['name'])){
     print_r($array);   //I want to use $array here, but I got the original 
     .....              //one.So what should I do to get the updated $array 
                        //from last Ajax call? 
}

誰かがそれを解決する方法を教えてくれたり、それを取得する別の方法があるとしたら、私はとても感謝しています.

4

1 に答える 1

0

ページへの AJAX 呼び出しはそれぞれ、新しい変数セットを初期化します。連続した呼び出しから $array にアクセスすることはできませんが、セッション変数にはアクセスできます。

session_start();ページの上部に追加してから、

<?php
//first Ajax call
if(isset($_POST['id'])){
     $_SESSION['id'] = $_POST['id'];
     $_SESSION['value'] = $_POST['value'];         //The first call is mainly to update the value of $array
     echo $_SESSION['value'];
     exit();
}

//Second Ajax call
if(isset($_POST['name'])){
    echo $_SESSION['id'],"<br>";
    echo $_SESSION['value'],"<br>";
}

注:このスニペットは、正当化されない可能性のある実行順序に関する仮定を行っています。プロダクション コードでは、変数$_POST$_SESSION変数を使用する前にその存在をテストする必要があります。

于 2013-10-27T05:05:33.887 に答える