PHP值从$ _POST更新

时间:2013-11-27 17:21:53

标签: php

我正在尝试制作购物车。

我有这样的表格形式:

<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']中。然后,如果我回到表单并输入第二个,我想更新数组,以便包含这两个值。

我该怎么做?我整天都在尝试这样做,但没有结果,所以你是我的最后一次机会。

2 个答案:

答案 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']);

希望这有帮助。