質問: **該当HTML** ``` ``` **条件** 入力必須にはしたくない **やりたいこと** 未入力のまま送信した場合は、NULLを受け取りたい --- **質問** ・``を未入力のまま送信した場合の値は何になりますか? 空文字? ・未入力のまま送信した場合の値を「NULL」もしくは「送信しない」にすることは出来ますか? ・受信側で、「空文字」を受け取ってから「NULL」へ変換するしかない?
回答: > > を未入力のまま送信した場合の値は何になりますか? 空文字? > > > 空文字になります。 > > ・未入力のまま送信した場合の値を「NULL」もしくは「送信しない」にすることは出来ますか? > > ・受信側で、「空文字」を受け取ってから「NULL」へ変換するしかない? > > > HTMLは空文字を送信してしまうのでJavascriptでPHP側でnull判定をさせるという方法ができます。 PHPでnullと判定させるには、そもそも送信させないという制御が必要なので条件でinputを追加したり消したりという処理をいれるのが良いと思います。 ``` $(".send_text").on("click", function(){ var send_text_value = $(".send_text:checked").val(); if (send_text_value == 1) { $("").prependTo("#send_form") }else { $("#send_text_any").remove(); } }); $("#send_form").submit(function(){ alert($('form').serialize()); return false; }); ``` ``` テキストを送信する テキストを送信しない ``` ただ上の処理はあくまで、 (1)null (2)空文字 を区別したいという処理のために行います。 もし、単純に空文字をnullとして処理したいということであれば受け手側で空文字をnullに変換するのが良いでしょう。 というのは結局POSTする値はブラウザの処理になるので、Javascriptで空文字をnullになるように制御しても、改ざん(空文字送信)で結局はサーバサイドでサニタイズ(null化)が必要になります。