2012-09-22 44 views
0

我想重新導向回到表單並保留以前輸入的值,任何想法?重定向回去並保留以前輸入的值

+0

您是否使用任何庫,如Zend Framework來生成表單?這將使它更容易。否則,無論您是在重定向的查詢字符串中傳遞表單值還是將其存儲爲會話變量或其他任何內容,都需要在表單頁面上手動檢查它們並手動填充每個輸入。 – LinusR

+0

@LinusR不,我沒有使用Zend Framework。 – iSun

回答

1

你必須使用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> 
+0

我在上面的代碼中使用start_seesions()? – iSun

+0

當然,對不起,我忘了它。編輯:修正。 –

+0

謝謝你,我根據你的文章改變了我的代碼,但仍然無法保持以前輸入。 – iSun

0

你在表單GET或

PHP使用哪種方法不能只是重新回來,生成表單,輸入與此名稱和值,比隱藏輸入字段:

document.nameOfForm.submit(); 
+0

我使用$ _POST方法。 – iSun

+0

+1,請您詳細介紹一下嗎? – iSun

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 
} 
?> 

在這裏,您填寫的值回你的形式,如果你riderected回到這個頁面,您可以通過檢查$ _ POST [「重定向」]設置得到這個informaten。 您可以將此檢查全局化,就像我在此處或每個輸入字段中所做的一樣。

<input name="key" value="<?php if (isset($_POST['redirected')) { echo $_POST['key']; } ?>" > 
相關問題