4

データ(連想配列)をphpファイルに渡すにはどうすればよいですか?

 function ajax(url,data,callback)
        {
            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
                xmlhttp.onreadystatechange = function() {
                    if ( xmlhttp.readyState === 4 ) {
                        callback( xmlhttp.responseText );
                    }
                }
            }
            xmlhttp.open("POST",url,true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send(data);
        }
4

2 に答える 2

7

私がこれを読んだ方法では、あなたはjavascriptにいて、javascriptオブジェクトを持っています(javascriptには連想配列がなく、配列とオブジェクトだけです)。したがって、データが何であれ、それを文字列に変換し、POST または GET 経由で PHP スクリプトに送信する必要があります。JSON3 をポリフィルとして含めることをお勧めJSON.stringifyします (クロスブラウザー対応のため)。コードは次のようになります。

var data = {
    someData: 'data',
    moreData: [
        'blah',
        'bleh'
    ]
};

var stringData = JSON.stringify( data );

// using jquery ajax for brevity (http://api.jquery.com/jQuery.ajax/)
$.ajax({
  type: "POST",
  url: "your-php-script.php",
  data: { data: stringData }
});

これで、php スクリプトはその文字列を取得して、json 自体に戻すことができます。

<?php
    $dataString = $_POST['data'];
    $data = json_decode($dataString);

うまくいけば、これはあなたが探していたものです。乾杯!

于 2012-05-03T18:55:13.800 に答える
0

PHP のJSON 関数を使用してこれを実現できます。配列をJavaScriptが処理できる表記にエンコード/デコードします。

于 2012-05-03T18:40:48.737 に答える