1

私のデータは次のようになります。これは単なるオブジェクトであり、その中に 2 つのオブジェクトがあります (それぞれがフォームのデータを表します)。

Object {x__sf: Object, x__mx: Object}
  x__mx: Object
    country_id: "1"
    input1: ""
    input2: ""
    ...
  x__sf: Object
    ...

メモリに一時的なフォームを作成して送信する必要があると思いますか? データをループして非表示フィールドを一時フォームに追加する安全な方法がわかりません。これのための機能はありますか?またはより良い方法ですか?

私はこれをしたいのですが、リダイレクトロジックのサーバー側があるため、実際にページを送信してもらいます。

$.post('/whatever.php', data);
4

3 に答える 3

3

しかし、次のアプローチの問題は何ですか?

サーバ側:

<?php
// do some stuff
print "/redirect/to.php";
?>

クライアント側:

$.post("/whatever.php", data, function(data) {
    location.href = data;
});

またはさらに高度な:

サーバ側:

<?php
// do some stuff
header("Content-Type: application/json");
print json_encode(array(
    "success" => "/redirect/to.php"
));
?>

クライアント側:

$.post("/whatever.php", data, function(data) {
    if (data.success) {
        location.href = data.success;
    }
}, "json");
于 2012-11-19T15:35:45.957 に答える
0

わざわざループしないでください....次のようにしてください:

$('form').submit(function() {
  alert($(this).serialize());
  return false;
});

またはあなたの場合:

var data = $("#idOfForm").serialize();
于 2012-11-19T15:33:48.587 に答える
0

データを送信する前に文字列化するだけです。

$.post('/whatever.php', JSON.stringify(data));

json_decode()サーバー側では、PHP関数を使用する必要があります。

json_decode(http_get_request_body());
于 2012-11-19T15:41:42.680 に答える