1

フォームにリダイレクトして、以前に入力した値を保持したいのですが、何かアイデアはありますか?

4

3 に答える 3

2

これを行うには、seesions を使用する必要があるため、process.php ファイル内で次のようにします。

    session_start();
    //assign all posted values to a session
    if (!empty($_POST)) {
        foreach($_POST as $key => $value) {
            $_SESSION['your_form'][$key] = $value;
        }
    }
    header('Location: your_form.php');

your_form.php 内:

    <?php
    session_start();
    if (isset($_SESSION['your_form']) && !empty($_SESSION['your_form'])) {
        $form_data = $_SESSION['your_form'];
        unset($_SESSION['your_form']);
    }
    ?>
    <form method="POST" action="process.php">
        <input type="text" name="txt1" value="<?=$form_data['your_form']['txt1']?>" />
        <input type="text" name="txt2" value="<?=$form_data['your_form']['txt2']?>" />
        <input type="submit" name="Submit Form" />
    </form>
于 2012-09-22T15:06:05.187 に答える
1
<form method='POST' action='back_to_your_form.php' name='thisForm'>

<?php foreach ($_POST as $key => $value) { ?>

  <input name='<?php echo $key; ?>' value='<?php echo $value; ?>' type='hidden'>

<?php } ?>

  <input name='redirected' type='hidden'>
</form>

<script language='javascript'>
  document.thisForm.submit();
</script>

Manolisの回答では、必要なデータをセッションに保存し、正常に機能しますが、フォームにデータを挿入した後、データの設定を解除します。ここでは、新しいフォームを生成し、入力の非表示の入力フィールドに入力して、POSTメソッドを介して前にページに送信します。あなたのページで、これを試してください:

<?php
if (isset($_POST['redirected'])) {
?>
  <input name="key1" value="<?php echo $_POST['key1']; ?>" >
  <input name="key2" value="<?php echo $_POST['key2']; ?>" >
  <button>Submit</button>
<?php
}
?>

ここで値をフォームに入力し直します。このページに戻った場合は、$ _POST['redirected']が設定されているかどうかを確認することでこの情報を入手できます。ここやすべての入力フィールドで行うように、このチェックをグローバルにすることができます。

<input name="key" value="<?php if (isset($_POST['redirected')) { echo $_POST['key']; } ?>" >
于 2012-09-22T15:19:56.373 に答える
0

フォームで使用するメソッドは GET または

PHP は、リダイレクトしてフォームを生成し、非表示の入力フィールドに名前と値を入力して、次のことを行うことはできません。

document.nameOfForm.submit();
于 2012-09-22T14:57:18.113 に答える