我實際上是PHP新手,所以我需要您的幫助!將cookie值重新輸入到輸入字段
我正在使用表格中的表格,並使用SQL Server來填充表格行。 表格以數量輸入類型=「數量」的輸入字段開頭。
<form name="testform" method="post" action="submit.php">
<?php
$sql="query goes here";
$query=sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
if ($query) {
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) {
echo "<td><input type='number' name='quantity[]'></td>";
}
}
?>
</form>
提交表單後,我希望用戶有可能導航回到上一頁來更改數量輸入,如果可能的話。 所以我需要恢復導航返回時的輸入值(所有值現在丟失時導航回來)。
我發現這種方式通過使用Cookie來存儲輸入值,所以我找到了一種方法來存儲輸入名稱='數量[]'(數組)的所有值在cookie中的方法。導航返回時將其打印在頁面上。它打印所有正確的數組索引位置的值。 這裏的一些代碼:
在我的表單頁面(form.php)接收cookie。
<?php
if (isset($_COOKIE['Cookie_Info'])){
$cookie = $_COOKIE["Cookie_Info"];
$cookie = stripslashes($cookie);
$savedAantArray = json_decode($cookie, true);
echo '<pre>';
print_r($savedAantArray); echo '</pre>';
} else {
$data = array(
'quantity[]' => ''
);
}
?>
在我的提交頁面(submit.php)設置cookies,帶有鏈接返回到form.php頁面。回到form.php的時候
<?php
if (isset($_POST['submit'])) {
$post_arr = $_POST;
$expire = 8*3600;
setcookie("Cookie_Info", serialize($post_arr), time()+$expire);
}
?>
<a href="form.php">Make Some Changes..</a>
結果
Cookies
Array
(
[quantity] => Array
(
[0] => 8
[1] => 8
)
[submit] => Submit
)
我的問題是: 是否有從數組的值存儲到所有正確的輸入字段的方法嗎? 而不是像數組一樣打印它們(這不是我想要的,但我想測試cookie存儲)。
在此先感謝!
您可以使用$ _SESSION來記住跨頁面的值,在$ _SESSION全局變量中創建一個子數組 –
第一次提交表單後,您是否將數據存儲在數據庫中? –
嗨哈利,還沒有。提交只是form.php和實際插入之間的一個層。 –