##追記1
JSON.stringify({"first_name":"一郎", "last_name":"鈴木"})
のJSON.stringifyを省くことで手動入力した{"first_name":"一郎", "last_name":"鈴木"}
は正しく$_POST
として取得できました。ありがとうございました。
どうも間違っていた部分がありました。
JSON.stringify()
の利用はフォームに入力された配列データをjson形式にする際に必要な物でした
(問題の切り分けのため、手動でデータを入力してテストしていました。余計な混乱を与え申し訳ありません)
で、その部分のコードはこのようになっています。
html
1data: JSON.stringify($("#form").serializeArray()), 2 JSONエンコード 配列
このdata をconsole.logに吐き出してみると、その実態は
[{"first_name":"一郎", "last_name":"鈴木"}]
のように、先ほどの手動入力のjsonデータ{"first_name":"一郎", "last_name":"鈴木"}
が[]
でくくられるような形式でした。
ちなみに正確なデータは
[{"name":"0","value":"生年月日"},{"name":"1","value":"氏名"}]
jsonのデータとしては間違っていないような気がしますが、これが問題なのでしょうか?
また、このようなフォームの値をポストしたい場合、みなさんはどうされていますか?
##最初の投稿
###Ajaxでポストしたデータを受けた受け側で値を取得したい
##該当のソースコード
###main.html
javascript
1$.ajax({ 2 url: '/test.php', 3 type: 'post', 4 data: JSON.stringify({"first_name":"一郎", "last_name":"鈴木"}), 5 dataType: "json", 6 contentType: 'application/json', 7 success: function(result, textStatus, xhr) { 8 console.debug(result); 9 alert('OK'); 10 }, 11 error: function(xhr, textStatus, error) { 12 alert('NG...'); 13 } 14});
###/test.php
php
1<?php 2echo json_encode(['result'=>$_POST]);
###結果(コンソール) orz
result: Array[0]
###ご教授ください
根本的にajaxの利用の仕方を理解していないのですが、よろしくご教授ください
※可能であれば、ajaxで呼ばれた側のdebugの仕方のヒントになるようなサイトなど教えていただけると幸いです
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/19 05:11