7

変数を登録ページ (go-gold.php) から要約/検証ページ (go-gold-summary.php) に正常に渡す登録フォームを作成しました。データは 2 ページ目に正しく表示されます。

ただし、ユーザーが入力エラーを起こした場合に備えて、画像ボタンを使用して登録ページに戻ることができるようにしたいと考えています。元のフォームには、最初に入力されたデータが入力されているはずです。

問題は、2 ページ目のデータを最初のページに再送信/返すことができないことです。テキスト フィールドが空白で表示されます。セッション変数を使用したくありません。

コードはページ全体から切り捨てられています。

登録ページ (go-gold.php):

<?php
$customer_name = $_POST['customer_name'];
?>

<form action="go-gold-summary.php" method="post">

Name: <input type="text" name="customer_name" id="customer_name" value= "<?php echo $customer_name ?>" />
<input name="<?php echo $customer_name ?>" type="hidden" id="<?php echo $customer_name ?>">

</form>

概要ページ (go-gold-summary.php)

<?php
$customer_name = $_POST['customer_name'];
?>

<form action="go-gold.php" method="post">

Name: <?php echo $customer_name ?> <input type="hidden" id="<?php echo $customer_name ?>" name="<?php echo $customer_name ?>">

<INPUT TYPE="image" src="images/arrow_back.png" id="arrow" alt="Back to Registration"> (Button to go back to Registration Page)

</form>

ありがとう!

4

3 に答える 3

2

go-gold-summary.phpは次のように変更する必要があります。

<?php
$customer_name = $_POST['customer_name'];
?>

<form action="go-gold.php" method="post">

Name: <?php echo $customer_name ?> <input type="hidden" value="<?php echo $customer_name ?>" name="customer_name">

<INPUT TYPE="submit" src="images/arrow_back.png" id="arrow" alt="Back to Registration"> (Button to go back to Registration Page)

</form>

この行をどのように変更したかに注意してください

<input type="hidden" id="<?php echo $customer_name ?>" name="<?php echo $customer_name ?>">

これに

<input type="hidden" value="<?php echo $customer_name ?>" name="customer_name">

$_POST は連想配列であり、フォームを送信すると、次のように入力されます。

$_POST["index"] = value;

ここ"index"で、 はテキスト フィールドの「名前」、valueはテキスト フィールドの値です。

コードでそれを見逃しています。私のコードで更新するだけで動作します

于 2013-04-23T02:53:52.220 に答える
0

ページ間で変数を維持する方法はほとんどありません。別の方法として、$_POST データを含む非表示のテキスト フィールドを含む別のフォームを 2 ページ目に配置し、送信ボタンで前のページを呼び出します。残念ながら、ブラウザの「戻るボタン」を回避する方法はありません。

セッション変数に関する太字のテキストを見逃しました - これが当てはまらない場合は無視してください:

サーバー側でページ間で変数を維持する 1 つの方法は、$_SESSION を使用することです。

まず、セッションをアクティブに保つために、PHP ページの上部に以下を含めます。

session_start();

for を送信して 2 ページに移動したら、次を追加します。

$_SESSION['customer_name'] = $_POST['customer_name'];

同様に、最初のページでは、フォーム要素を次のように変更できます。

<input type="text" name="customer_name" value="<?PHP if isset($_SESSION['customer_name'] || !empty($_SESSION['customer_name'])) { echo $_SESSION['customer_name']; } ?>">

これにより、入力されたデータが保持され、ユーザーがページに戻ったときに表示されます。別のデータを入力すると、2 ページ目に再度アクセスしたときに更新されます。

于 2013-04-23T02:52:35.840 に答える