我正在尝试将表单数据保存到数组中,以便稍后可以在表格中显示它。我遇到的问题是,当我单击提交按钮并使用php_self
重新加载时,它似乎每次都初始化变量。这是我想要做的一个例子。
<?php
// if first time initialize variables
if (!isset($i)) {
echo "in initialize section<br />";
$i = 0;
$itemno[] = "";
$desc[] = "";
}
if (isset($_POST['submitbtn'])) {
$itemno[$i] = $_POST['item'];
$desc[$i] = $_POST['desc'];
echo "Item# = " . $itemno[$i] . "<br />";
echo "Desc. = " . $desc[$i] . "<br />";
$i += 1;
echo "i = $i";
var_dump($itemno);
var_dump($desc);
}
?>
<form id="submititem" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="submit" >
<input name="item" placeholder="Enter item #" size="18" />
<input name="desc" placeholder="Enter Description" size="18" />
<input name="submitbtn" type="submit" value=">">
</form>
由于
拉尔夫
答案 0 :(得分:0)
您遇到的问题是PHP在每次加载页面时都会“新鲜”。如果要将数组保留在多个提交中,则需要将数据存储在某处。会话或数据库是最常用的两种方法。
以下是您使用会话的方式:
<?php
session_start();
$items = isset($_SESSION['items']) ? $_SESSION['items'] : array();
$descriptions = isset($_SESSION['descriptions']) ? $_SESSION['descriptions'] : array();
// your logic here...
$_SESSION['items'] = $items;
$_SESSION['descriptions'] = $descriptions;
请注意,如果您的阵列可能变得非常大或者您有很多用户,那么您可能希望使用数据库来存储项目/描述信息。
答案 1 :(得分:0)
你必须处理会话
$_SESSION['itemno'][$_SESSION['i']] = $_POST['item'];