ホームページ > バックエンド開発 > PHPチュートリアル > PHPで2つのフォームを定義したのですが、最初のフォームを送信すると2番目のフォームが生成されてしまい、最初のフォームのデータが取得できなくなります。

PHPで2つのフォームを定義したのですが、最初のフォームを送信すると2番目のフォームが生成されてしまい、最初のフォームのデータが取得できなくなります。

WBOY
リリース: 2016-06-23 14:21:06
オリジナル
1105 人が閲覧しました

フォーム php 送信データの転送

1 つの php で 2 つのフォームを定義しました。最初のフォームが送信されると、2 番目のフォームが生成されます。最初のフォームのデータを取得できません。 ?
//最初のフォーム
echo "
";
for($i;$i<$m;$i++)
{
echo "
";
}
echo "";
echo " var_dump($m);
?> 2 番目のフォームを送信した後、$m を最後まで渡すにはどうすればよいですか?
私は初心者なので、Cookie とセッションについて理解できません。ありがとう!

ディスカッションに返信 (解決策)

最も合理的な方法は、セッションまたは Cookie を使用して以前の送信を保存することです。理解できない場合は、これを学習の機会として利用してください

最も合理的な方法は次のとおりです。セッションまたはクッキーを使用する クッキーは以前の送信を保存します。理解できない場合は、これを機会として学習してください。私のアプローチは、2 つのフォームを 2 つの php ファイルにそれぞれ入れることです。次に、2番目のphpで setcookie("m1",$m,time()+3600);

$m2=$_COOKIE["m1"];
次に、変数 m2 を m の値として使用しましたが、 3 つの形式がある場合に m を取得するにはどうすればよいですか? phpが次のWebページにジャンプした後、前のphpの値が取得されないと思います。この問題は XML を使用して解決できますか?

物事をあまり複雑にしないでください

2 番目のフォームは最初のフォームのハンドラーによって作成されます

次に、最初のフォームの送信を隠し変数の形式で 2 番目のフォームに入れます

物事を作成しないでください。とても複雑です

2 番目のフォームは最初のフォームのハンドラーによって作成されます

次に、最初のフォームの送信を隠し変数の形式で 2 番目のフォームに入れます 以上です
私もそう思いましたが、変数は参考になるコードがあれば幸いです。ありがとうございます。

物事をそれほど複雑にしないでください

2 番目のフォームは最初のフォームのハンドラーによって作成されます

次に、最初のフォームの送信を隠し変数の形式で 2 番目のフォームに入れます
私はこの種のことに遭遇しました。アンケートをするときは、1 ページに 1 つの質問が表示されます。最初は、隠された質問を 1 つずつ答えていきました。 12 個の質問は面倒でした。はい、セッションを使用する方がはるかに簡単です
クッキーを使用する場合は、単に「偽の送信」を行って、すべての質問を一度に送信します。後続の質問を非表示にし、最後の質問までまとめて送信します

セッションの欠点は、時間に依存し、値の損失を避けるために一定期間内にアクションを必要とすることです
クッキーの欠点クライアントはそれを偽装できるということです

の間に php コードを追加します
foreach($_POST as $k=>$v) echo "";

なんでめんどくさいの?セッションを使用するフォーム ページの場合、どのように設定しても、「ロールバック」のパフォーマンスは満足のいくものではありません




物事をそれほど複雑にしないでください
2 番目のフォームは、最初のフォームのハンドラーによって作成されます
それから、最初のフォームを隠し変数の形式で 2 番目のフォームに送信する
私もそう思いますが、変数は隠蔽されないので、参考になるコードがあることを願っています。ありがとうございます。


物事をそれほど複雑にしないでください
2 番目のフォームは最初のフォームのハンドラーによって作成されます
次に、最初のフォームの送信を隠し変数の形式で 2 番目のフォームに入れます
私はこの種のことに遭遇しました。アンケートをするときは、1 ページに 1 つの質問が表示されます。最初は、隠された質問を 1 つずつ答えていきました。 12 個の質問は面倒でした。はい、セッションを使用する方がはるかに簡単です
クッキーを使用する場合は、単に「偽の送信」を行って、すべての質問を一度に送信します。後続の質問を非表示にして、最後の質問まで 1 つずつ表示します。
セッションの欠点は、値の損失を避けるために一定の時間内にアクションを実行する必要があることです。 Cookie の欠点は、クライアントが偽装できることです。 いいえ、私が生成したフォームは、以前のフォームで送信されたデータに基づいてのみ使用できます。出力の上限はなく、非表示にすることはできません。

同様に、js は「送信」コンテンツに基づいてコントロールを生成することもできますが、これについてはよくわかりません

本当に理解できない場合は、#6 の Lao Xu の方法に従ってください。このアイデアが最も簡単です。

私は個人的には配列に比較的慣れているので、セッション レコードの使用には慣れていますが、以前に送信されたデータを毎回調べるのは面倒です

これは可能です。 2 つの方法
1 つの方法は、2 ページに分割し、第 1 ステップで送信した後、第 2 ステップで読むことです。
1 ページに 2 つのステップ: まず js を使用して 2 番目のステップを非表示にし、ajax で送信します。その後、最初のステップの値を 2 番目のステップでも取得できます。

物事をそれほど複雑にしないでください
2 番目のフォームは最初のフォームのハンドラーによって作成されます
次に、最初のフォームの送信を隠し変数の形式で 2 番目のフォームに入れます

そうですね、この方法だと思います。が最も便利ですが、結果が得られません。私のコードを見てもらえますか?

これは 2 番目の PHP です:
foreach($_POST as $k=>$v)
{
echo "";
}
var_dump($m);
echo "

";
for($ j =1;$j {
{
echo "n の値を入力してください".$j.": }
}
echo "";
echo "
";
これは 3 番目の PHP です:
foreach($_POST as $k=>$v)
{
echo "";
}
$n;
for($i=1;$i<=$m;$i++)
{
$h="n".$i ;
$n[]=$_POST["$h"];
}
var_dump($n);
?>
3 番目の php 出力へのジャンプは、 n1 と n2 、 n3 にのみ続きます。 . 値、m が表示されないのですが、何が起こっていますか?

同様に、js は「送信」コンテンツに基づいてコントロールを生成することもできますが、これについてはよくわかりません

本当に理解できない場合は、#6 の Lao Xu の方法に従ってください。このアイデアが最も簡単です。

私は個人的に配列には比較的慣れているので、セッション レコードの使用には慣れていますが、以前に送信されたデータを毎回調べるのは面倒です

ありがとうございます。しかし、6# より上のコードを使用しても結果が得られません。何が起こっているのでしょうか?

の外に置くと何の役に立つのですか?

を の外に置くと何の役に立つのですか?
よく言ったね! 1 か月間無駄に PHP を書いたような気がします。また、コード内の get と post が一致していないことに気づきました。ありがとうございました。

csdn に投稿して PHP 関連の質問をするのは初めてですが、私の IQ をひどく軽蔑していますが、とても感謝しています。 xuzuning と snmr_com に感謝します。

@xuzuning

@snmr_com
お花を散りばめて! O(∩_∩)O

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート