htmlの空のテキストボックスのvalueには何が入っているのですか?
プログラミング初心者です。
以下の自作のブール値判定プログラム(HTML+PHP。isset、empty、is_nullなどを使った)
により、
「空のテキストボックスの値には、NULLが入っているわけではない」
「テキストボックス内の値をNULLに書き換えても、値がNULLになるわけでもない」
ということはわかりました。
しかし、
・では、空のテキストボックスにはいったい何の値が入っているのか。
・そして、「NULL」と書かれたテキストボックスには、いったい何の値が入っているのか。
・どうすれば以下の命題を実現できるか:
** 「空のテキストボックスをPOST送信すると、スーパーグローバル変数のvalue $_POST["テキストボックスのname"] に、nullが代入される」**
がわかりません。(PHPマニュアルのisset関数等の項目を見ましたが、よくわかりませんでした)
もしよろしければ、教えていただけますでしょうか?
ご回答宜しくお願いします。
ブール値判定プログラム
HTML
1<!--このHTMLのファイル名は、「fileMethod.html」です--> 2 3<tr>ここでisset、empty、is_nullの挙動を確認しよう</tr> 4<tr> 5 <form method="post" action="fileMethod.php" > 6 issetの引数: 7 <input name="issetInput" type="text"><br> 8 emptyの引数: 9 <input name="emptyInput" type="text"><br> 10 is_nullの引数: 11 <input name="is_nullInput" type="text"><br> 12 13 <input type="submit" value="送信"><br> 14 </form> 15</tr> 16
PHP
1/*このスクリプトのファイル名は、「fileMethod.php」です*/ 2<?php 3/*issetの引数と戻り値について*/ 4echo "isset関数は、渡された変数が、存在していてかつ中身がnullでないならばtrueを返し、それ以外ならば、つまり存在しないか中身がnullならばfalseを返すのであった。"; 5echo "<br>"; 6echo "isset関数について、引数「"; 7echo $_POST["issetInput"]; 8echo "」に対する戻り値は、「"; 9echo isset($_POST["issetInput"]); 10echo "」です。"; 11echo "<br>"; 12/*emptyの引数と戻り値について*/ 13echo "empty関数について、引数「"; 14echo $_POST["emptyInput"]; 15echo "」に対する戻り値は、「"; 16echo empty($_POST["emptyInput"]); 17echo "」です。"; 18echo "<br>"; 19/*is_nullの引数と戻り値について*/ 20echo "is_null関数について、引数「"; 21echo $_POST["is_nullInput"]; 22echo "」に対する戻り値は、「"; 23echo is_null($_POST["is_nullInput"]); 24echo "」です。"; 25echo "<br><br>"; 26 27echo "以上の結果から、「空のテキストボックスの中身(value)はnullではない」ということが分かるんだ。"; 28 29?> 30 31
###追記
テキストボックスの値は、中身がなんであるかによらず、あくまで常に文字列として記録される、ということがわかりました。
よく覚えておきます。
ちなみに、頂いたアドバイス通りに、条件分岐を==を使って以下のように書き替えたところ、目的通りのモジュールを完成できました。(もう一つのやり方をおしえて頂いた方も、ありがとうございます。参考にさせていただきます)
PHP
1<?php 2/*テキストボックスに入力された名前のファイルを作成*/ 3if($_POST["fNameCr"] == true){//テキストボックスの入力が空でなければ実行 4 touch("{$_POST['fNameCr']}");//名前が"○○"のファイルを作成(○○はfNameのvalue。作成場所はこのスクリプトと同ディレクトリ) 5 echo "ファイル「{$_POST['fNameCr']}」の作成に成功しました!\n"; 6}else{//テキストボックスの入力が空ならば実行 7 echo "ファイル名が入力されていません。戻って入力してください。"; 8}; 9?>
ついでに
==と===の違いについて
等価判定演算子==の機能は、
「左側の値を、そのデータ型を右側の値のデータ型と同じデータ型へ変換を施した後、右側の値との等価判定を実行する」
等価判定演算子===の機能は、
「左側の値を、ただ単に、右側の値との等価判定を実行する」
という感じであっているでしょうか?もしよろしければ、ご回答頂けると幸いです。
回答5件
あなたの回答
tips
プレビュー