inputタグの中身を送りたいのに送れない
「formタグの内容を送りたいのに送れない!!」
ってなったときにミスに気づくのに時間がかかりました。
正確には
「formタグの中に送りたい内容をいれた。そして送信のためのボタンも押した!
なのにname属性の値とvalue属性の値がphp側に送られていない。」
という状況です。
$_POST['name属性の中身']をゲットしたいのに、それがゲットできない。
という状況でした。
※php言語、htmlを使用
さて、コードですがまずは正しいコードを。
これは正しいコード ↓
<form action="" method="post" class="form"> <h2 class="title">ログイン</h2> <!-- メールアドレス --> <label class=""> メールアドレス <input type="text" name="email" value=""> </label> <br> <!-- パスワード --> <label class=""> パスワード <input type="password" name="pass" value=""> </label> <br> <label> <input type="checkbox" name="pass_save">次回ログインを省略する </label> <br> <div class="btn-container"> <input type="submit" class="btn btn-mid" value="ログイン"> </div> </form>
見た目はこうなります。
formの外に出すとinputタグの中身は送れない
で、どう間違えたかというと
<form action="" method="post" class="form"> <h2 class="title">ログイン</h2> <!-- メールアドレス --> <label class=""> メールアドレス <input type="text" name="email" value=""> </label> <br> <!-- パスワード --> <label class=""> パスワード <input type="password" name="pass" value=""> </label> <br> <label> <input type="checkbox" name="pass_save">次回ログインを省略する </label> <br> </form> --ここがミス-- <div class="btn-container"> <input type="submit" class="btn btn-mid" value="ログイン"> </div> --ここがミス--
form外に
<input type="submit" class="btn btn-mid" value="ログイン">
を置いてしまっていたので、いくらログインボタンを押しても無駄でした。
あとよくあるミスは一行目の
<form action="" method="post" class="form">
でmethodを指定してなかったり、、、 (僕はmethodを指定せず送ったときもだめだった気がします)
ちなみに
action属性
送信先のファイルのパスを指定する部分。
送信ボタンを押した際にここで指定したファイルにデータの送信と同時に遷移(移動)を行う。
method属性
どういった方法で(postかgetか)データを送信するかを指定する。
post:送信する内容を目に見えないように隠して送信する。
get:URLに直接付加するのでパラメータに入ってしまう形で送信する。(=大事な情報が目に見えてしまう)
※特にメールフォームやパスワードフォームでは必ず「post」として下さい。
参考にした記事はこちらです↓