フォームから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ランキング
-
①入力フォーム→②確認表示画面→③...
-
GASでGoogleフォームの自動返信...
-
読み込んだQRコードをフォーム...
-
ジャバスクリプトについて。
-
セレクトを全て選択されていな...
-
ローディングアニメーションの...
-
GASでチェックボックスを一括of...
-
GASに文字列として関数を入れる...
-
初心者です。gulpでコンパイル...
-
var exports = exports || {}; ...
-
ボタンを押したあとに画像を表...
-
IndexedDB を使ってファイルア...
-
React hooksが値を返して配列変...
-
Google scriptについて 至急scr...
-
スマホ上で、左右スワイプで次...
-
ブックマークレットについて
-
jsで、配列内の文章を改行する...
-
追加ボタンを押した際に ok ボ...
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
http上でrequest されたxmlファ...
-
テキストファイルの内容を変数...
-
json形式データのデータ連携に...
-
jsonテキストデータの並び替え...
-
【JavaScript】confirmのボタン...
-
非同期通信を使うタイミングが...
-
DirectXとOpenGLはどちらが動作...
-
HTMLでDBからデータを表形式で...
-
saved from url=(0013)abou
-
リンクを押すとEXEファイルを実...
-
ASP.NET(VB)VBソースからJavas...
-
Javadcriptでwebサーバー側にあ...
-
カーソルの動きに合わせてDBか...
-
Ajaxでpostした内容のresponse...
-
[JavaScript] preven...
-
jQueryのAjaxで通信の途中結果...
-
php ob_flushが全く動作しない
-
webシステムでchrome
-
ローカル用HTMLファイルの安全...
-
JQuery サーバー上にアップする...
おすすめ情報