
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
フォームへの前回入力値をクリ...
-
HTMLのリンクをクリックするこ...
-
フォームでのリセットを使う方法
-
PHP ボタンが押されたら処理を...
-
DBの値をチェックボックスに反...
-
検索時の選択内容を保持する方法
-
php mysql でチェックボックス...
-
XMLデータをPOSTで送信・受信す...
-
フォームボタンを押すたびに数...
-
フォーム送信後の更新ボタンで...
-
POSTデータをフォームに残す方法
-
PHPの質問:フォームから受け取...
-
PHPのエラーの解消法について教...
-
VBA で、スペースを含むファイ...
-
フォームの状態やGETのURLは保...
-
テキストリンクをPOST送信したい
-
phpでのセレクトボックスの値を...
-
プルダウンで選択された値を保持
-
ショッピングカートの精算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
-
DBの値をチェックボックスに反...
-
$_SESSIONについて教えて下さい。
-
PHPで、ボタンを押すと同じペー...
-
PHP ボタンが押されたら処理を...
-
<input type="hidden" >で配列...
-
アンケートフォームの作り方
-
入力した部分を表示させたまま...
-
画面が更新されてもチェックボ...
-
ラジオボタンをsessionで使いたい
-
チェックボックスによる検索
-
PHPで画像の渡しが上手く行きま...
-
同じページでフォームデータを...
-
POSTをボタンではなくリンク等...
-
配列をhiddenで
-
HTMLのvalue値を取得したい。
-
パラメーターを隠す
-
選んだ数字だけ繰り返す
-
PHPで画像データーのアップロー...
おすすめ情報