私は失敗によってAjaxを学んでおり、壁にぶつかった:
Javascriptで記述された配列(重要な場合、配列はユーザーがチェックするチェックボックスに基づいて番号IDを格納しています)を持っています。
ユーザーが「保存」ボタンをクリックすると呼び出される関数があります。機能は次のとおりです。
function createAmenities() {
if (window.XMLHttpRequest) {
//code for IE7+, Firefox, Chrome and Opera
xmlhttp = new XMLHttpRequest();
}
else {
//code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('message').innerHTML = xmlhttp.responseText;
}
}
var url = "create_amenities.php";
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
私の質問は:この関数に何を入れて、私が呼び出しようとしているPHPスクリプトに配列をプルすることができますか( 'create_amenities.php')?
さらに、JSONを使用してみてください。もしそうなら、どのようにajax経由でJSONオブジェクトを送信できますか?
前もって感謝します。
配列に複数の次元がある場合、または連想配列の場合は、JSONを使用する必要があります。
Jsonは完全な配列構造を文字列に変換します。この文字列は、PHPアプリケーションに簡単に送信して、PHP配列に戻すことができます。
Jsonの詳細: http://www.json.org/js.html
var my_array = { ... };
var json = JSON.stringify( my_array );
PHPでは、json_decodeを使用して文字列をデコードできます。
http://www.php.net/manual/en/function.json-decode.php
var_dump(json_decode($json));
配列をループし、毎回クエリ文字列にencodeURIComponent('keyname[]') + '=' + encodeURIComponent(theArray[i]) + '&'
を追加します。
さらに、JSONを使用してみてください。
可能ですが、通常のフォーム処理で処理するのではなく、反対側でJSONをデコードすることを意味します。
もしそうなら、どのようにajax経由でJSONオブジェクトを送信できますか?
JSONオブジェクトのようなものはありません があります。 JSONは文字列の形式を取り、クエリ文字列に文字列を含めることができます(encodeURIComponent
を忘れないでください)。