我实际上是PHP的新手,所以我需要你的帮助!
我在表单中使用表,而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来存储输入值,因此我找到了一种方法来存储输入名称的所有值=&#39;数量[]&#39; (数组)在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)上设置cookie,链接返回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>
返回form.php时的结果
Cookies
Array
(
[quantity] => Array
(
[0] => 8
[1] => 8
)
[submit] => Submit
)
这是我的问题: 有没有办法将数组中的值存储到所有正确的输入字段中? 而不是像阵列一样打印它们(这不是我想要的,但我想测试cookie存储)。
提前致谢!
答案 0 :(得分:0)
谢谢Yvon,现在就开始工作吧。
再次在我的第二页上:
<?php session_start();
$_SESSION['quantity'] = $_POST['quantity'];
foreach($_POST['quantity'] as $key => $value) {
echo "<input name='quantity' value='$value'>\n<br />";
}
?>
返回首页:
<?php session_start();
$quantity=$_SESSION['quantity'];
print_r($quantity);
echo "<br \>";
foreach($_SESSION['quantity'] as $key => $value) {
echo "<input name='quantity[]' value='$value'>\n<br />";
}
?>
答案 1 :(得分:0)
只是一个小编辑,让它现在完美运行(包括打印正确数量的行)。
在第一页:
match (a:ARTEFACT)-[:VERSION]->(v)-[:PROVIDED]-(p)
with a,count(v) as count
where count > 1
return a
在第二页:
<form name="form" method="post" action="second.php">
<?php session_start();
include 'db_connect.php';
$quantity=$_SESSION['quantity']; print_r($quantity); echo "<br \>";
$sql ="SELECT * FROM X0ONTDTA.WEBRELGB";
$query = sqlsrv_query( $conn, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
if($query){
if (isset($_SESSION['quantity'])){
foreach($_SESSION['quantity'] as $key => $value) {
echo "<input name='quantity[]' value='$value'>\n<br />";
}
}
elseif($query){
while($row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC) ) {
echo "<input name='quantity[]' value=''>\n<br />";
}
}
}
?>
<input type="submit" value="Submit" name="submit"></input>
</form>
导致: