![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
フォームからjQuery,jQuery.jsonを使ってJSONを作ってPHPで表示したい。
こんばんは。2、3日ずっと悩んでて解決しないので助けてください。
jQuery,jQuery.jsonを使ってJSONを作成しています。
クリックイベントに
var form = $("#sform");
var json = $(form.serializeArray());
var strJson = $.toJSON(json);
という形をとって
$.ajax({
url : "request.php",
type : "post",
data : strJson,
success: function(request){
$('#result').html(request);
}
});
で送っています。
ただPHP側で
var_dump($_POST);
を行ってもArray ( ) と表示されます。
firebugで見たところpostに入っているデータは以下の通りです。
{"0":{"name":"date","value":"2010/09/15"},"1":{"name":"type","value":"new"},"2":{"name":"bin[]","value":"2"},"3":{"name":"bin[]","value":"3"},"length":4}
var_dumpで表示できないのはなぜでしょうか?
上記で変数json のまま送るとオブジェクトとして送れてvar_dump でも表示できます。
ただ今はjson の勉強をしているので、できればなぜこうなっているのかを理解したいです。
基本的なところで勉強不足かもしれませんが、何かアドバイスなど頂けると嬉しいです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
「var json = $(form.serializeArray());
このデータを送るのが一番標準ということでいいのでしょうか?」
=>そうです。わざわざJSONオブジェクトに作り変える必用は無いです。
.serializeArray()で、jQueryが、JSON形式の文字列データに変換して
くれてるんです。
「phpで json_decodeしなくてもデータがそのまま二次元配列で渡っている」
=>そう思ってもよいでしょう。正しくは、二次元配列の形式に格納する
形式の文字列データで渡っているですが
PHPで、
echo file_get_contents("php://input");
として見れば、送信されてくる文字列データが見れます。
お礼が遅くなってすみません。
本当にありがとうございます。
やっとこさ理解ができました。
自分で余計なことをしていたためにややこしかったんですね。
No.1
- 回答日時:
GETやPOSTで送れるデータは、ストリング(文字列だけです。
)JSONを送受信するとは、JSON形式でテキストデータを
送受信するという事です。
javascriptオブジェクト(変数、配列、関数、DOM要素,json形式のobject...)を
そのままGET、POSTしても、結局 .toString() の値が渡される
だけだからだと思います。
var json = $(form.serializeArray());
はフォームの中身をJSON形式の文字列を生成してます。だから送れます。
var strJson = $.toJSON(json);
は、JSON形式の文字列からJSONオブジェクトを生成してます。
これは、文字列に戻さないと遅れません。
IE以外なら、
data:strJson.toSource()
でうまくいくんじゃないかと、
この回答への補足
>JSONを送受信するとは、JSON形式でテキストデータを
>送受信するという事です。
ということは
var json = $(form.serializeArray());
このデータを送るのが一番標準ということでいいのでしょうか?
$.toJSON(json);
この作業が蛇足で、これを行っているからうまくいかないと今は考え始めています。
ただ、phpで json_decodeしなくてもデータがそのまま二次元配列で渡っているということはJSONではないのですよね。
Google Chromeですがdata:strJson.toSource();を行ってみましたがダメでした。
何も変わらずでした。
現状var json = $(form.serializeArray());で渡せばそのまま何の問題もなくphpで作業できます。
phpからJSONを返す作業も問題なくいっています。
ただvar json = $(form.serializeArray());ということろがJSONを送っているのかが分からないという状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryでシンセサイザーを作っ...
-
二次元配列を使って順位をだす...
-
プログラミング 学習
-
追加ボタンを押した際に ok ボ...
-
Cookieに保存されない
-
読み込んだQRコードをフォーム...
-
プラグイン無しでContactform7...
-
GASでチェックボックスを一括of...
-
ジャバスクリプトについて。
-
【Google Apps Script】「ライ...
-
①入力フォーム→②確認表示画面→③...
-
HTMLでサブフレームから親のス...
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
-
メールフォームの日付入力フォ...
-
iOSのみダブルタップが必要
-
jsで質問です。 displayプロパ...
-
var exports = exports || {}; ...
-
HTMLタグに複数のクラスを設定...
-
Googleフォームで選択肢に応じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jsonテキストデータの並び替え...
-
json形式データのデータ連携に...
-
以下のようなjsonファイルで、"...
-
jQuery.msgBoxでのthisの使用に...
-
gulpfile.jsとpackage.jsonの読...
-
http上でrequest されたxmlファ...
-
jQuery $.ajax JSON形式のPOST
-
Ajaxでデータベース更新
-
jQuery.getでレスポンスデータ...
-
VSCodeにて「終了タグ」の背景...
-
フォームからjQuery,jQuery.jso...
-
教えてください!html5.jpを使...
-
【JavaScript】confirmのボタン...
-
HTMLでDBからデータを表形式で...
-
DirectXとOpenGLはどちらが動作...
-
saved from url=(0013)abou
-
ASP.NET(VB)VBソースからJavas...
-
ローカル用HTMLファイルの安全...
-
非同期関数とノンブロッキング...
-
AJAX通信が終わるまで次の処理...
おすすめ情報