あるフォームの値が空欄(初期値)だったとき、SUBMITさせない方法はよく書かれているけれど、
空欄でSUBMITしてもOKにしたい。
別にバリデーションしなければいい話なんだけど、何故かAngular JS + Ionicでは空欄のフォームは、何もなかったように(そもそも存在すらしないように)扱われてしまうので、PHP側で
Undefined index: 変数名 in 行数
なんてエラーが発生しちゃうんですね。
PHP側とては当然です。
Javascriptからこのデータが飛んで来るって想定して構えているのに、それがないんだから。
回避策というか、空欄なら空欄でポストしてくれないとこまる。
解決策はいくつか思いつく。PHP側で@(アットマーク)を付けてしまうのが一番簡単かな?エラー制御の命令です。
ただ、もとはといえばちゃんとデータが送れないのがそもそも問題なのです。
この時の解決策は、ng-initを使うことでした。
問題のコード
<input type="text" name="sum2" ng-model="send.Sum">
これでPOSTすると、ユーザが値を入力すればちゃんと send.Sumという入れ物に入って送られるのに、空欄だと入れ物自体が消滅しちゃう。
ということで解決すると
<input type="text" name="sum2" ng-model="send.Sum" ng-init="send.Sum=''">
とりあえずこれでちゃんと送信できた。正しい解決かはわからないけど、意図したとおりには動いたのでこれで良し