0

ajax post を使用して JS 変数を PHP に送信しようとしています

 function post(){

       $.ajax({url:"myPHP.php", 
              data: {name: "John"},
              type: 'post',
              success: function(data){
              return true;    
              },
         });
    }

それは私のPHPに送信されますが、変数に警告して確認しようとしているとしましょう。何も得られませんが、変数をエンコードした場合にのみ機能します。

PHP

session_start();

$EID   = isset($_POST["name"])?$_POST["name"]:""; 

$EID = json_encode($EID);   
$_SESSION['EID'] =$EID;
echo "alert($EID);";

別の PHP ファイルで、その変数を使って何かをしたいのですが、うまくいきません。変数が設定されていないようです。

session_start();

 $EID = $_SESSION['EID'];


    // Connect to MySQL
         if ( !( $database = mysql_connect( "localhost",
            "root", "" ) ) )                      
            die( "Could not connect to database </body></html>" );

    // open Events database
         if ( !mysql_select_db( "db", $database ) )
            die( "Could not open db database </body></html>" );

     $result = mysql_query ("SELECT * FROM database WHERE ID = '$EID' ")
     or die ('Error updating database because: '.mysql_error());

$EID が定義されていないなどの理由で、クエリが実行されません。Json_encode 変数を PHP 変数として取得する方法はありますか? ありがとう

4

3 に答える 3

0

別の別の AJAX 呼び出しに 2 番目の PHP スクリプトを使用する場合を除き、セッション変数を設定する理由はまったく明確ではありません。セッション変数は、最初の PHP スクリプトに含まれていた、または必要とされていた 2 番目の PHP スクリプトに変数を渡す必要はありません。

また、同じ PHP コードで session_start() を 2 回呼び出すと、エラーがスローされることに注意してください。PHP コードの最初の部分に 2 番目の部分が含まれている場合、~E_NOTICE がスローされます。一方、最初のコードが PHP CLI を使用して 2 番目のコードを実行している場合、2 番目のスクリプトはセッション データを共有しません。

于 2013-11-01T07:47:24.560 に答える
0

$_POSTリクエストによって送信された情報を取得するために使用しています.ajax()が、以前にリンクされたドキュメントに見られるように..デフォルトのメソッドは POST ではなく GET ですtype.POST( ) を使用するには、設定でパラメーターを使用しますtype: 'post'

あなたのajaxが結果を返さないことについて..成功関数のデータ変数で何もしません。あなたがすることはすべてですreturn true。データを使って何かをしたい場合は、それを使用してください。

また、あなたのajaxでそれを述べたいと思います..データオブジェクトには、オブジェクトプロパティidを含むアイテムがありません。これは、phpで設定されていないことも説明します。別の言い方をすれば..あなたのPHPでは、POSTを使用してajaxリクエストの値を取得し..値「eid」を取得します..しかし、「eid」はなく、「name」のみがあります。「eid」を名前に置き換えるか、request object( data: {name: 'john', eid: 'id'}) で「eid」を正しく定義すると、機能します。

上記の例を次に示します。

$.ajax({
    url: 'myPHP.php',
    type: 'post',
    data: {
        name: "John",
        eid: 1 //or whatever eid should be/put your variable here
    },
    success: function(data){
        return true;    
    },
 }); 
于 2013-11-01T06:07:47.060 に答える