2

複数の入力の値とIDをオブジェクトにコンパイルし、それらをAJAX関数に渡す単純な関数があります。残念ながら、正しく投稿するためのデータを取得できません。処理ページは確実に呼び出され、変数はjsに到達します(オブジェクトはコンソールで正しく表示されます)が、処理ページではすべての変数が空白になっているようです。

スクリプト:

$("#" + buttonId).find(".submitValue").each(function() {
    inputId = $(this).attr("id").replace(buttonId + "-", "");
    inputValue = $(this).val();

    var data = {}; 
    data[inputId] = inputValue;
    dataObject.push(data);
});

$.post(
    'ajax/' + buttonId + '.php', 
    {
        'nextForm': formNumber,
        dataObject: dataObject
    },
    function (response) {
        $("#" + buttonId).append(response);

    }
);

関連するphp処理ページ(これよりも多くの変数がありますが、すべて同じように見えます-この例のIDは "timeBlockLocation"、 "appointmentAddress1"、 "appointmentAddress2"です)-接続が作成されました

$nextForm = $connection->real_escape_string($_POST["nextForm"]);
$timeBlockLocation = $connection->real_escape_string($_POST["timeBlockLocation"]);
$appointmentAddress1 = $connection->real_escape_string($_POST["appointmentAddress1"]);
$appointmentAddress2 = $connection->real_escape_string($_POST["appointmentAddress2"]);

$_POSTの処理ページのvar_dumpは次のとおりです。

array(2) {
  ["nextForm"]=>
  string(1) "6"
  ["dataObject"]=>
  array(3) {
    [0]=>
    array(1) {
      ["timeBlockLocation"]=>
      string(1) "1"
    }
    [1]=>
    array(1) {
      ["appointmentAddress1"]=>
      string(4) "TEST"
    }
    [2]=>
    array(1) {
      ["appointmentAddress1"]=>
      string(5) "TEST2"
    }
  }
}    
4

1 に答える 1

1

Mahn が指摘したように、私は配列を間違ってナビゲートしていました。私は次のような表記法を使用して成功しました:

$timeBlockLocation = $connection->real_escape_string($_POST["dataObject"][0]["timeBlockLocation"]);
于 2013-02-22T18:40:16.600 に答える