🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

5回答

12665閲覧

*htmlの空のテキストボックスのvalueには何が入っているのですか?

WeilSpinor

総合スコア170

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

1クリップ

投稿2019/03/22 08:44

編集2019/03/22 10:46

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?>

ついでに

==と===の違いについて

等価判定演算子==の機能は、
「左側の値を、そのデータ型を右側の値のデータ型と同じデータ型へ変換を施した後、右側の値との等価判定を実行する」

等価判定演算子===の機能は、
「左側の値を、ただ単に、右側の値との等価判定を実行する」

という感じであっているでしょうか?もしよろしければ、ご回答頂けると幸いです。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/03/22 08:49

なぜ「nullが代入される」必要があるのでしょう。
WeilSpinor

2019/03/22 09:05 編集

まず、isset関数を使って、 「テキストボックスに値が入力されていたら処理Aを行い、値が入力されていなければ処理Bを実現する」 というモジュールを作りたいと思っていました。以下の感じです: if(isset($_POST["テキストボックスのname"])){ //処理A }else{ //処理B }; これが狙い通りに動くためには、 「テキストボックスが空でない時は、変数 isset($_POST["テキストボックスのname"])がtrue」 「テキストボックスが空の時は、変数 isset($_POST["テキストボックスのname"])がfalse」 である必要があります。 しかし、うまく動かず、テキストボックスが空でも処理Aを実行してしまいました。 そこで 「isset関数の使い方を勘違いしているのかもしれない」 と思い、PHPマニュアルで調べてみたところ、 「isset関数は、引数に渡される変数が存在していてかつ値null以外の値が入っていればtrueを、値がnullならばfalseを返す。」 とあったので、 「ならば、HTMLのテキストボックスやHTTPリクエストの仕様の問題なのかもしれない」 ということを疑っています。
退会済みユーザー

退会済みユーザー

2019/03/22 10:52

var_dump() を知らないのかな???
guest

回答5

0

では、空のテキストボックスにはいったい何の値が入っているのか。

''(空文字列)

そして、「NULL」と書かれたテキストボックスには、いったい何の値が入っているのか。

'NULL'(「NULL」という文字列)

どうすれば以下の命題を実現できるか(後略)

なんのために実現したいのでしょうか?

投稿2019/03/22 08:59

maisumakun

総合スコア145965

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/03/22 09:10

条件分岐は、issetではなく、「$_POST['foobar'] === ''」のような形で判定しましょう。
WeilSpinor

2019/03/22 09:14

ご回答ありが等ございます。 テキストボックスのスーパーグローバル変数(のvalue)に代入されるのは、あくまでテキストボックスの"文字列"なんですね。 ということは、「文字列からブール値への変換関数」というものがあるなら、それを使って変換を挟んでからissetを使えば、実現できそうな気がしますね。 なんのために実現したいかといいますと、 isset関数を使って、 「テキストボックスに値が入力されていたら処理Aを行い、値が入力されていなければ処理Bを実現する」 というモジュールを作りたいと思っていたんです。 以下の感じです: if(isset($_POST["テキストボックスのname"])){ //処理A }else{ //処理B }; これが狙い通りに動くためには、 「テキストボックスが空でない時は、変数 isset($_POST["テキストボックスのname"])がtrue」 「テキストボックスが空の時は、変数 isset($_POST["テキストボックスのname"])がfalse」 である必要があります。 しかし、うまく動かず、テキストボックスが空でも処理Aを実行してしまいました。 そこで 「isset関数の使い方を勘違いしているのかもしれない」 と思い、PHPマニュアルで調べてみたところ、 「isset関数は、引数に渡される変数が存在していてかつ値null以外の値が入っていればtrueを、値がnullならばfalseを返す。」 とあったので、 「ならば、HTMLのテキストボックスやHTTPリクエストの仕様の問題なのかもしれない」 ということを疑っていたところです。
maisumakun

2019/03/22 09:17

上に書いたように、空文字列と===で比較するのがいちばん確実です。PHPの「文字列からブール値への変換」は、「'0'」がfalseと解釈される罠がありますので、基本的にやるべきではありません。
WeilSpinor

2019/03/22 09:47

ありがとうございます。 一つ気になったのですが、 ===は「データ型の違いも含んだ等価判定」ですよね? 今回は、「テキストボックスの見た目の中身を、無理矢理しょうみのブール値として解釈させたい」ので、 データ型の違いを無視しなければいけませんから、===ではなく、 ==でないといけなくないでしょうか? 現に、===だと、入力したテキストによらず常にfalseになってしまい、==だと目的通りに動いてくれました。
WeilSpinor

2019/03/22 09:51

すみません、間違えて連投してしまいました。
maisumakun

2019/03/22 11:18

「データ型の違いも含ん」で、''と比較する必要があります。
guest

0

こんな感じになりますかね。

php

1if (isset($_POST['foo'])) { 2 // fooというパラメータを受信した 3 if ($_POST['foo'] === '') { 4 // fooというパラメータを受信したものの、空文字列だった(テキストエリアで未入力など) 5 } 6 else { 7 // fooというパラメータを受信して、値が入っていた 8 } 9} 10else { 11 // fooというパラメータを受信してない(もしかしてフォーム上でパラメータ名を間違ったかも) 12}

こんなサンプルコードのように、
true or false でジャッジできる2択の状況ではなく、むしろ3択なので、
ブール値で判定結果を返すことが無理です。

NULLはヌルという特別な状態を示すための、null型の値です。
null型はNULLしか値が存在しません。
0でもなければ''(空文字列、文字列長ゼロの文字列)でもありません。
変数がNULLの場合というのは、そもそもその変数が定義されていない存在しないことを示します。
PHP: NULL - Manual
つまり、「NULLという値を納めている変数が存在する」のではなく
「そんな変数は定義されていないし存在もしていない」ってことになるかと。

併せてこちらも読むと良いかも:
PHP isset, empty, is_null の違い早見表 - Qiita

投稿2019/03/22 09:27

編集2019/03/22 09:53
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

WeilSpinor

2019/03/22 10:02

ご回答ありがとうございます。 思わぬ所でnullの理解を深めるきっかけになりました。
退会済みユーザー

退会済みユーザー

2019/03/22 10:18 編集

phpの、いいのかわるいのかわかりにくい特徴の一つが、自動型変換機能です。 PHP: 型の相互変換 - Manual http://jp2.php.net/manual/ja/language.types.type-juggling.php 値を比較するとき、演算するとき、示したページのように勝手に数値として解釈してしまうため、 思わぬところで意図しない処理や判断をしかねません。 明示的に intvar() とか floatvar() をつかうこともあります。余談。
guest

0

ベストアンサー

既に回答があり、解決済みかと思いますが、理解されてなさそうな箇所を補足します。
(私の説明に誤りがご指摘ください)

テキストボックスの値について

テキストボックスのスーパーグローバル変数(のvalue)に代入されるのは、あくまでテキストボックスの"文字列"なんですね。

既に理解されているとおりで、テキストボックスは入力しても、入力しなくても、スーパーグローバル変数で取得する型は全て文字列です。

テキストボックスに ああああ と入力すれば、'ああああ' という文字列を取得します。
テキストボックスに NULL と入力すれば 'NULL' という文字列を取得します。
テキストボックスに true と入力すれば 'true' という文字列を取得します。
何も入力しなければ、'' 空の文字列を取得します。

ちなみに、何の型か知りたいときは、var_dump を使います。
例えばですが、下記のように型を知ることができます。

php

1<?php 2$a = 'おはよう'; 3var_dump($a);

出力結果は下記です。

txt

1string(12) "おはよう"

string とあるので、文字列型とわかります。

ちなみに、PHPの実行結果を簡単に見たいときは、Online PHP editor などのオンラインエディタを使うとブラウザ上で確認できます。

if の条件式について、== と === の違い

if で条件分岐をするには、何が true と評価されて、何が false と評価されるのか理解しておく必要があります。
truefalse は論理型で、それぞれの値を論理値と呼びます。
※ PHP は truefalse の大文字・小文字は区別しませんので、この記事では小文字で統一します。

if の基本的な記述は下記のとおりです。

php

1if(条件式) { 2 // true と評価されたらここの処理を実行 3}

条件式の記述ですが、わかりやすいのが 比較演算子 を使った記述です。
リンク先のPHPマニュアルにも記載されていますが、===== の比較演算子は二つの値を比較して、truefalse かを返します。

あえて、== の緩やかな比較を使ってみます。

php

1if('テスト' == 'テスト') { 2 echo '条件が一致しています'; 3}

二つの値は同じですので、true となり、条件が一致しています と表示されます。
次の場合はどうでしょうか。

php

1if('テスト' == true) { 2 echo '条件が一致しています'; 3}

条件が一致しています と表示されます。
なぜ、等しいと判断されるかと言うと == の緩やかな比較を使っているため、型の相互変換が行われるためです。

$a == $b  等しい  型の相互変換をした後で $a が $b に等しい時に TRUE。

PHP: 比較演算子 - Manual

今回の場合、'テスト'という文字列が truefalse の論理値に変換されます。
何が true で何が false と判断されるかはPHPマニュアルに記載されています。
下記が false と判断され、それ以外は true と判断されます。

boolean に変換する場合、次の値は FALSE とみなされます。

boolean の FALSE
integer の 0 (ゼロ)
float の 0.0 (ゼロ)
空の文字列、 および文字列の "0"
要素の数がゼロである 配列
特別な値 NULL (値がセットされていない変数を含む)
空のタグから作成された SimpleXML オブジェクト

引用:PHP: 論理型 (boolean) - Manual

上記に 'テスト'という文字列はありませんので、'テスト'true と判断されます。
ですので、条件が一致しています と表示されたというわけです。

当然ですが、=== の厳密な比較だと結果は異なります。

$a === $b 等しい $a が $b に等しく、および同じ型である場合に TRUE 。

PHP: 比較演算子 - Manual

緩やかな比較とは違い、型変換はしません。

php

1if('テスト' === true) { 2 echo '条件が一致しています'; 3} else { 4 echo '条件は一致しません'; 5}

条件は一致しません と表示されます。
そもそも、文字列型と論理型で型が違いますので当然です。

これが ===== の違いです。
== の緩やかな比較は、型変換されて何が true を返すのか、false なのかわかりにくいので、=== を使った方がいいです。

if の条件式には論理値以外も記述できる

if の条件式には論理値(truefalse)だけではなく、文字列や数値なども記述することができます。
下記のように文字列を記述できます。

php

1if('おはよう') { 2 echo 'trueです'; 3} else { 4 echo 'falseです'; 5}

trueです と表示されます。
不思議に思うかもしれませんが、if の条件式は論理値で評価されます。

式は論理値で評価されます。

PHP: if - Manual

'おはよう'true なのか false なのか判断します。
この基準は先ほど説明したとおりで、PHPマニュアルに記載されてたものは false で、それ以外は、true と判断されます。
そのため、'おはよう'true と判断されます。

ここまで理解したら、本題に入ります。

テキストボックスの入力の有無で条件分岐する方法

テキストボックスの入力がないときは '' 空文字です。
テキストボックスの入力の有無によって条件分岐をしたければ、単純に '' 空文字と比較すればいいだけです。

php

1if($_POST["example"] === '') { 2 // テキストボックスの入力がないときの処理 3} else { 4 // テキストボックスに入力があったときの処理 5}

最初にテキストボックスに入力があったときの処理をしたければ、等しくないか比較すればいいだけです。

php

1if($_POST["example"] !== '') { 2 // テキストボックスに入力があったときの処理 3} else { 4 // テキストボックスの入力がないときの処理 5}

maisumakun さんが == ではなく === を使うようにとアドバイスした理由は既に理解さていると思いますが説明します。

下記のように記述したとします。

php

1if($_POST["example"] == '') { 2 // テキストボックスの入力がないときの処理 3} else { 4 // テキストボックスに入力があったときの処理 5}

== は勝手に型変換されて比較されます。
false と判断されるのは下記です。

boolean に変換する場合、次の値は FALSE とみなされます。

boolean の FALSE
integer の 0 (ゼロ)
float の 0.0 (ゼロ)
空の文字列、 および文字列の "0"
要素の数がゼロである 配列
特別な値 NULL (値がセットされていない変数を含む)
空のタグから作成された SimpleXML オブジェクト

引用:PHP: 論理型 (boolean) - Manual

文字列の '0'false と判断されてしまいます。
緩やかな比較の場合、テキストボックスに 0 と入力しても、入力されていないという処理になってしまうため、厳密な比較 === を使いましょうとアドバイスをしていたわけです。

ちなみにですが、追記された下記の条件式は冗長です。

php

1if($_POST["fNameCr"] == true){ 2 // 略 3}else{ 4 // 略 5};

既に理解されていると思いますが、if には論理型以外を記述しても論理値にして判断します。
ですので、先ほどの記述は下記と同じです。

php

1if($_POST["fNameCr"]){ 2 // 略 3}else{ 4 // 略 5};

==緩やかな比較を使って true と比較しているため、その必要がないということです。

そのことは、PHPマニュアルにも記載されています。

// これは冗長
if ($show_separators == TRUE) {
echo "<hr>\n";
}

PHP: 論理型 (boolean) - Manual

投稿2019/03/25 05:40

編集2019/03/25 06:37
7968

総合スコア253

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

WeilSpinor

2019/03/25 10:26 編集

ご回答ありがとうございます。 マニュアルには、==の『型の相互変換』は、文字列型と数値型を比較した場合、文字列型の方の値が数値型に変換されて比較される、とありました。 その場合、おそらく、例えば文字列'3'は数値3(文字コード番号と一致)に変換され、文字列'こんにちは'は、各文字の文字コードの番号(の10進数バージョン)を繋げた数値に変換される、 という事だと思います。 そこで、確認したいのですが、 ・==の『型の相互変換』は文字列型の値とブール型を比較した場合、文字列型の方がブール型に変換されて比較される。(つまり、相互変換においては、文字列型よりもブール型の方が"強い") ・==は、文字列型と文字列型、つまり同じ型同士の値を比較した場合は、「両者ともにブール型に変換して」比較が行われる。 (でないと、文字列のゼロ'0'と空文字列''が等しいと判定される説明ができない) こういうことで合っているでしょうか?
WeilSpinor

2019/03/25 10:21

つまり、 【異なる型の値同士の場合】 型の相互変換には『方向』があって、 「文字列型→数値型→ブール型」 となる。 【文字列同士の場合】 型の相互変換は、両者ともに問答無用でブール型に変換されて比較される。 【数値同士の場合】 型の相互変換は行われず、数値のまま比較される。 という感じでしょうか?
7968

2019/03/26 02:16 編集

> 文字列型と数値型を比較した場合、文字列型の方の値が数値型に変換されて比較される、とありました。 > 例えば文字列'3'は数値3(文字コード番号と一致)に変換され、 文字列型の方の値が数値型に変換されますが、文字コードは関係ないと思います。 PHPが何の値と何の値を比較しているかです。 実際に試してみてほしいのですが、文字列 '3' を整数型に型キャストしてみます。 ```php var_dump((int)'3'); ``` ``` int(3) ``` 文字列の '3' を整数型に型キャストすると、整数型の 3 になりました。 ですので、'3' == 3 と比較すると文字列の '3' は整数型にキャストされ、整数型の 3 と整数型の 3 を比較し、true となります。 > 文字列'こんにちは'は、各文字の文字コードの番号(の10進数バージョン)を繋げた数値に変換される、という事だと思います。 文字コードの番号を繋げた数値に変換されるというのは誤解です。 `==` の場合、比較するときに勝手に型キャストして比較しているというだけの話です。 実際に試してみてほしいのですが、'こんにちは'という文字列と整数型の3を比較してみます。 ```php if('こんにちは' == 3) { echo 'trueです'; } else { echo 'falseです'; } ``` ``` falseです ``` 「falseです」と表示されました。 比較するときに文字列を整数型に型キャストしてから比較しています。 'こんにちは'という文字列を整数型に型キャストすると何になるか確認してみます。 ```php var_dump((int)'こんにちは'); ``` ``` int(0) ``` 整数型の 0 です。 先ほどの if の条件は整数型の 0 と整数型の 3 を比較しているため「falseです」と表示されました。 整数型の 0 と比較してみましょう。 ```php if('こんにちは' == 0) { echo 'trueです'; } else { echo 'falseです'; } ``` ``` trueです ``` 「trueです」と表示されました。 比較するときにどちらの型にあわせるかですが、わかりにくいのですが、おそらく「さまざまな型の比較 (https://www.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.types)」に記載されているとおりかと思います。 bool なら両方を bool に変換し、数値と文字列なら文字列を数値に変換して比較しているのかと思います。 (うーん、この表わかりにくいですね...) 実際に型同士の比較結果は「== による緩やかな比較(https://www.php.net/manual/ja/types.comparisons.php#types.comparisions-loose)」に記載されています。 ここを見てください。 TRUE と FALSE の結果に納得いかないところがあれば、先ほどのように実際に自分で試してみてください。 実際にどちらかの値を型キャストして比較してみれば、どちらの型にあわせているのかわかります。 ちなみに、先ほど試した文字列と整数型の0の比較も TRUE と記載されています。 一通り説明してわかったと思いますが、`==` の緩やかな比較はわかりにくいので使わない方がいいです。
WeilSpinor

2019/03/25 23:43 編集

詳しくご説明頂き大変ありがとうございます。また見返したりして、少しずつ覚えていこうと思いm酢z
guest

0

まず、isset関数を使って、
「テキストボックスに値が入力されていたら処理Aを行い、値が入力されていなければ処理Bを実現する」
というモジュールを作りたいと思っていました。以下の感じです:

if(isset($_POST["テキストボックスのname"])){
//処理A
}else{
//処理B
};

これが狙い通りに動くためには、
「テキストボックスが空でない時は、変数 isset($_POST["テキストボックスのname"])がtrue」
「テキストボックスが空の時は、変数 isset($_POST["テキストボックスのname"])がfalse」
である必要があります。

しかし、うまく動かず、テキストボックスが空でも処理Aを実行してしまいました。

ただ空かどうかを判別するだけなら empty で判断してください。

【PHP: empty - Manual】
http://php.net/manual/ja/function.empty.php

投稿2019/03/22 10:31

kei344

総合スコア69596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「空のテキストボックスをPOST送信すると、スーパーグローバル変数の
value $_POST["テキストボックスのname"] に、nullが代入される」

処理系に依存しそうですが、PHPでは無理じゃないですかね。

nullとカラ文字列を判別したいということであれば、nullとしたいケースで
JavaScript等で送信時にpostから除外するとかで判別できるかと思います。

投稿2019/03/22 09:04

tabuu

総合スコア2471

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

WeilSpinor

2019/03/22 10:11

ご回答ありがとうございます。 JavaScriptで送信時にポストから除外…そんなテクニックがあるんですね…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問