我正在尝试制作购物车。
我有这样的表格形式:
<form action="./post.php" method="POST">
product id: <input type="text" name="prod" /><br />
<input type="submit" value="submit" />
我已经完成了可见的字段以测试脚本。
PHP代码
<?php
$prods=$_POST['prod'];
for($i=0; $i < count($prods); $i++){
$new=$prods[$i];
echo $new;
}
?>
如果我输入第一个值,我将其保存在新的$_POST['prod']
中。然后,如果我回到表单并输入第二个,我想更新数组,以便包含这两个值。
我该怎么做?我整天都在尝试这样做,但没有结果,所以你是我的最后一次机会。
答案 0 :(得分:4)
每个新的HTTP请求都会丢失所有数据,因为HTML / PHP是无状态的。要维持状态,您需要使用sessions。
修改强>
<?php
session_start(); // start session
$prods=$_POST['prod'];
if (!isset($_SESSION['products'])) { // check if session var exists
$_SESSION['products'] = array(); // create session variable as an array
}
$_SESSION['products'][] = $prod; // add new product
// do other stuff
?>
答案 1 :(得分:0)
您可以将新提交附加到存储在$ _SESSION中的数组。
$_SESSION['current_products'][] = $_POST['prod'];
这会将每个POSTed产品附加到SESSION变量中的数组。这比以逗号分隔的方式存储更容易 - 以逗号分隔的方式检索它们,只需使用implode
:
$products = implode(",",$_SESSION['current_products']);
希望这有帮助。