
PHPのフォームを作って勉強しているのですが、フォーム → チェックページ → サンクスページの順で遷移しているのですが、サンクスでのデータ取得がいまいち把握できなく、アドバイスをお願いいたします。
まずフォームからpostでチェックページに飛ばします。
<form action="check.php" method="post">
<input type="text" name="name">
</form>
チェックページでは、
$name = $_POST["name"];
とかで受け取って入力データに問題が無ければサンクスに飛ばします。
print '<form action="thanks.php" method="post">';
print '<input name="name" type="hidden" value="' . $email . '">';
print '<input type="submit" value="OK">';
print '</form>';
↑この記載でサンクス側で名前を取得することができるのですが、
print '<input name="name" type="hidden" value="' . $name . '">'; の部分のvalueのところの書き方がいまいち理解できません。
print '<input name="name" type="hidden" value="">'; とかで送ってサンクス側で、
print = $_POST["name"];
とかで表示できないかと試してみたのですが、ダメでした。
とても根本的な部分について理解が出来ていないです…。
また、チェックからサンクスに送る方法で別の書き方などもあればアドバイス頂けますと幸いです。
初歩的な質問ですみません。宜しくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
> そのままフォームを書いて対象部分だけphpで書くのと、ご質問させて頂きましたように、頭からprint で全体を書くのは何か意味があるのでしょうか?
<?php ~ ?>や<?= ~ ?>で括った範囲はphpとして処理され、それ以外の部分はそのまま表示されるのはご理解されているかと思います。
私が例として書いたものは、ユーザーの入力内容が何であっても内容に変化がない部分はphpの処理の範囲外にそのまま書き、ユーザーの入力内容次第で変化する部分についてはphpで処理させただけにすぎません。
最終的な結果が同じになるのであればどちらの書き方でも問題ありませんが、1つのファイルの中で<?php ~ ?>や<?= ~ ?>で区切られた部分があまりに多くあると処理の流れが把握しにくくなってくるという弊害もありますので、全体の見やすさや好みで使い分ければよいかと思います。
No.3
- 回答日時:
form.html
<html>
<body>
<form action="check.php" method="post">
<input type="text" name="name">
<input type="submit" value="submit">
</form>
check.php
<?php
$name = htmlspecialchars($_POST['name']);
?>
<html>
<body>
<?=$name?><br />
<form action="thanks.php" method="post">
<input name="name" type="hidden" value="<?=$name?>">
<input type="submit" value="OK">
</form>
thanks.php
<html>
<body>
<?=htmlspecialchars($_POST['name'])?><br />
<a href='form.html'>to form</a>
必要最小限のあくまで一例。
stcp様
有難うございます、こちらの内容ではサンクスまで送ることができました。
自分で書いていて恐縮ですが、stcp様の様にそのままフォームを書いて対象部分だけphpで書くのと、ご質問させて頂きましたように、頭からprint で全体を書くのは何か意味があるのでしょうか?
頭にprint書かないほうが、書きやすく見やすいように思うのですが…。
No.2
- 回答日時:
フォーム
<form action="check.php" method="post">
<input type="text" name="name">
</form>
チェックページ
print '<form action="thanks.php" method="post">';
print '<input name="name" type="hidden" value="' . $_POST["name"] . '">';
print '<input type="submit" value="OK">';
print '</form>';
サンクスページ
print = $_POST["name"];
やりたいのは要するにこういう事でしょうか?
チェックページのhiddenをtextに変えて実行してみれば、値がどう受け渡されているか分かるのではないかと思います。
naoiz様
有難うございます。
行いたいのは頂いた流れであっていますが、試してみましたが、やはりサンクスページでprint = $_POST["name"]; を行ってもエラーとなり表示されませんでした。
チェックからをtextに変えても同じでした、考え方が間違っているのでしょうか?
No.1
- 回答日時:
>>↑この記載でサンクス側で名前を取得することができるのですが、
print '<input name="name" type="hidden" value="' . $name . '">'; の部分のvalueのところの書き方がいまいち理解できません。
これは単純にvalueの値として$nameの内容の文字列を'(シングルクオート)で囲って連結してあげているだけですね。
>>とても根本的な部分について理解が出来ていないです…。
まあ、PHPの理解というよりも、HTMLの書き方の理解が先なのかもしれませんね。
それが理解できていたら、そこから推論すればわかることです。
いずれにしても、私の経験からして、ホームページ関係の動作を理解するには、「PHPの勉強だけでは無理!!」ってことなんですよね。
でも、そのあたりのことって、入門書では解説されてないことも多いです。
というのも、最近だと、最低限の学習内容として、PHPやHTMLだけでなくCSSにJavaScriptにjQueryにBootStrap、さらにはデータベースのMySQLの使い方とSQL言語までが必要ですからね。
それだけでも初心者には重荷なのに、それに加えて、Webサーバやアプリケーションサーバなどまで理解しろというのは、酷すぎるってことでしょう。
Webの世界は広いので、いくら学んでも学ぶネタは尽きません。
次々に新しい技術が出てきて、前の技術が陳腐化していきますからね。
常に勉強をし続けるしかないですね・・・。
有難うございます。
う~ん、やはり理解できません。
フォームからチェックページでは、名前が取得できるのに、チェックページからサンクスページでは、同じ方法で名前が取得できないです。
そもそも、チェックからサンクスではvalueに入れないと取得できないのでしょうか?
フォームからチェックではそのような処理は行っていなくとも表示されているのですが…。
何だか混乱してきました。TT
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列をhiddenで
-
HTMLで前の画面に戻る時、入力...
-
MySQL+PHPでキーワード検索を...
-
フォームへの前回入力値をクリ...
-
FireFoxでのセッションの挙動が...
-
リストボックス 複数選択のデ...
-
<input type="hidden" >で配列...
-
カウンタのリセット
-
明細行の複数ボタンの処理に関して
-
PHPでフォームデータをサンクス...
-
入力した部分を表示させたまま...
-
syntax error, unexpected '}' ...
-
ラジオボタンをsessionで使いたい
-
チェックボックスのvalueを連結...
-
フォームボタンを押すたびに数...
-
検索時の選択内容を保持する方法
-
チェックボックスによる検索(...
-
POSTデータのNAME属性をVALUEに...
-
extract($_POST)
-
PHPでCookieを使った訪問回数に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
検索時の選択内容を保持する方法
-
HTMLで前の画面に戻る時、入力...
-
同じページでフォームデータを...
-
PHPで、ボタンを押すと同じペー...
-
フォームボタンを押すたびに数...
-
フォームへの前回入力値をクリ...
-
DBの値をチェックボックスに反...
-
チェックボックスによる検索
-
HTMLフォームで複数選択のチェ...
-
フォームでのリセットを使う方法
-
エラーを元の画面に表示させるには
-
PHP ボタンが押されたら処理を...
-
チェックボックスの必須項目指定
-
【PHPチェック】ラジオボタンが...
-
POSTやGETの変数をフォーム無し...
-
PHPでクリックするたびに変数を...
-
入力した部分を表示させたまま...
-
ラジオボタンをsessionで使いたい
-
POSTデータのNAME属性をVALUEに...
-
アップロードの際にファイルパス
おすすめ情報