0

私はこれに近づいていると思いますが、何らかの理由でjsonデータがphpページに到達したときに出力されません。

ダミーデータを含む私のフォームは次のとおりです。

<form id="add_form" action="javascript:void(0);">
    <fieldset>
        <input type="text" value="5" name="dogs" id="dogs" />
        <input type="text" value="10" name="cats" id="cats" />
    </fieldset>
</form>

関連する関数は次のとおりです (上には表示されていないボタンから実行されます)。

function add()
{
    $.ajax({
    type: 'POST',
    cache: false,
    url: 'add.php',
    data: { json: $('#add_form').serialize() },
    success: success
    });
}

最後に、うまくいかないように見えるphp:

$json_object = json_decode($_POST['json']);
echo $json_object;

私が本当に求めているのは、フォーム内の各要素の値を取得できるようにすることです (フォーム要素がいくつあっても)。いつものように、喜んでアドバイスをいただければ幸いです。

4

3 に答える 3

0

フォーム データが「POST」タイプとして php ページに渡されるため、json をデコードする必要はありません。次のようにしてください。

$json = $_POST['json'];
print_r($json);
于 2013-10-05T05:45:42.007 に答える
0

それ以外の、

function add()
{
    $.ajax({
    type: 'POST',
    cache: false,
    url: 'add.php',
    data: { json: $('#add_form').serialize() },
    success: success
    });
}

使用する必要があります。

function add()
{
    var data = $('#add_form').serialize();
    $.ajax({
    type: 'POST',
    cache: false,
    url: 'add.php',
    data: data,
    success: success
    });
}

次に、次のようにアクセスします。

$_POST['dogs'];
于 2013-10-05T05:46:14.117 に答える
0

JSON を送信する場合は、最初に JSON を作成する必要があります。ドキュメント.serializeで読むことができるように、JSON を返さず、クエリ文字列を返します。

この.serialize()メソッドは、標準の URL エンコード表記でテキスト文字列を作成します。<input><textarea>、などの個々のフォーム コントロールを選択した jQuery オブジェクトに作用できます<select>

多分あなたがしたい:

data: { json: JSON.stringify($('#add_form').serializeArray()) },

しかし、それは複雑すぎるようです。使うだけ

data: $('#add_form').serialize(),

などを介して PHP 側のデータにアクセスします$_POST['form_field_1']

于 2013-10-05T05:46:23.847 に答える