formのactionに自分自身を指定する方法[エラー対処も]
みなさんこんにちは!ワトスンです。
今回は、、
同じページ内でformのデータを渡したい!formで自分自身を指定してactionするにはどうすればいい?
といった疑問に答えます。
phpファイル内にフォームとフォーム送信後のプログラムを一緒に記述している場合、フォームからデータを取り出して同じファイル内にあるプログラムにデータを渡す必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<form action="自分自身にactionする" method="post"> 名前 <div><input type="text" name="n"></div> メッセージ <div><textarea name="m"></textarea></div> <div class="chat-submit"> <input type="submit" value="送信"> </div> </form> <?php if(isset($_POST['n'])) { //フォームの情報を取得(actionされた後の実行プログラム) $my_nam=htmlspecialchars($_POST["n"], ENT_QUOTES); $my_mes=htmlspecialchars($_POST["m"], ENT_QUOTES); $dsn= "mysql:host=localhost;port=0000;dbname=sample;charset=utf8"; try{ $db = new PDO($dsn,"root",""); $db->query("INSERT INTO tb (ban,nam,mes,dat) VALUES (NULL,'$my_nam','$my_mes',NOW())"); }catch (Exception $e) { echo $e->getMessage() . PHP_EOL; } header("Location: {$_SERVER['PHP_SELF']}"); exit; } ?> |
その際に、自分自身をactionで指定し送信する必要があります。
今回はその際に上手くできなかった方向けに記事を書いてみました。
ぜひ参考にしてみて下さい。
それではご紹介していきます。
formで自分自身を指定してactionする基本的なやり方
まずformで自分自身を指定してactionする基本的なやり方として、以下の4つの方法があります。
1.自分自身のURLを指定する
2.actionを指定しない
3.action=””
4.action=”#”
1 2 3 4 |
<form action="自分自身のURL"></form> <form></form> <form action=""></form> <form action="#"></form> |
という4つの方法があります。
formに自分自身のURLを指定したらバグる
1 |
<form action="自分自身のURL"> |
このように記入してフォームボタンを押すと「プログラムが上手く実行されない」というエラーに直面しました。
解決策が見つかったので、共有します。
解決方法は、
1 |
<form action=""> |
actionを空指定にする方法に変更すると上手くいきます。
一度「自分自身のURLを指定してバグった」方は、「空指定する」に変更してみてください。
きっと上手くいくと思います。
以上参考になれば嬉しいです。
なにか疑問点がありましたらコメントまたはTwitterのDMでご連絡ください!
以上です。