なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

連想配列とJSONとオブジェクトがぐちゃぐちゃになってる~フォームに値をプラスしてPOST送信~

f:id:nazuna_0124:20170319171727p:plain

やばいです。作ってるものが全くすすみません!

あっちでゴチン。こっちでゴチンとやって遅々として進まず。


今回のはまりパターンはajaxでフォームにプラスを付けてPOST送信


フォームの値そのものはserializeArray()でまとめて引っ張れます。


これに他の値も足そうとしたら大苦戦


方法は一応2つです。

  1. hiddenでフォームの部品をこっそりつっこむ
  2. 取ってきたのは配列なんだから普通に足しちゃう


1で紹介されてるところもあります。これやると送信後に作った部品を削除する処理がはいるので断念


んで、2なわけなんですが。これがわけわかんない。

結論から書きます。

(他の方のブログ参照したんですがURL行方不明に…。ごめんなさい、見つかったらリンクはります)

postSuruyo.push({name: 'honya', value: 'honyanya'});


これ以外の普通の書き方は全部だめでした


それに気がつくのに1時間。さらに

この書き方ってこれでPHPでいうところの

$postSuruyo =['honya'=>'honyanya']

と同じなのです。nameとvalueはいわゆるkeyとvalueじゃないのです……。

一種の命令(?)なのですね。


そこに気がつくのにまた1時間


いつになったら前に進むの・・・


そのあとつまったのは

ajaxのdataType

これは受取形式で送信形式じゃないよ!

が、まずひとつ。


んで、書いてる自分もよくわからないのがdataType指定しないと

DOMに直接突っ込むと配列の中身が表示されます。

でもキーからデータ引っ張れません


dataType:‘json'を指定すると、キーから引っ張れますが

直接DOMに埋め込めません


こ、この違いは一体・・・

きっと何か根本的なところの理解が出来てないからだと思います。



でも望むように動いたからいいや


というわけで、いつも通りプログラムは書いたようにしか動いてくれないなぁという1日でした。