使用PHP POST数组数据创建收据
我正在学习PHP,并试图制作一个简单的购物车/处理脚本 我已经创建了商品购物车,但当用户承诺在购物车中购买商品时,我在收据中显示信息时遇到问题 为了节省空间/时间,我省略了项目列表和购物车的生成,如果您需要,可以找到它们 下面是将数据发布到mycheckout.PHP脚本的PHP cart.php(更新以反映变化) 如何以更有意义的方式发布信息,即关联数组。然后使用关联的数组以类似表格的格式显示信息 预期产出使用PHP POST数组数据创建收据,php,html,arrays,Php,Html,Arrays,我正在学习PHP,并试图制作一个简单的购物车/处理脚本 我已经创建了商品购物车,但当用户承诺在购物车中购买商品时,我在收据中显示信息时遇到问题 为了节省空间/时间,我省略了项目列表和购物车的生成,如果您需要,可以找到它们 下面是将数据发布到mycheckout.PHP脚本的PHP cart.php(更新以反映变化) 如何以更有意义的方式发布信息,即关联数组。然后使用关联的数组以类似表格的格式显示信息 预期产出 <table> <tr> <th>ID
<table>
<tr>
<th>ID</th>
<th>Product</th>
<th>Price</th>
</tr>
<tr>
<td>A123</td>
<td>Item1</td>
<td>$1000</td>
</tr>
<tr>
<td>Z999</td>
<td>Item999</td>
<td>$9999</td>
</tr>
<tr>
<td>Total</td>
<td></td>
<td>$10999</td>
</tr>
</table>
身份证件
产品
价格
A123
项目1
$1000
Z999
项目999
$9999
全部的
$10999
注意:这只是一个学习练习,所以不需要数组清理,也不需要SQL
编辑:更新以反映@Obsidian Age建议,现在出现解析错误您的项目在HTML中都具有相同的
名称
属性:
<input type="hidden" name="checkout[]">
或直接输出:
foreach($_POST['ids'] as $id) {
$title = $_POST['titles'][$id];
$price = $_POST['prices'][$id];
echo "
<tr>
<td>$id</td>
<td>$title<td>
<td>$price</td>
</tr>
";
}
foreach($\u POST['id']作为$id){
$title=$_POST['titles'][$id];
$price=$_POST['prices'][$id];
回声“
$id
$title
美元价格
";
}
希望这有帮助!:) 你必须根据ID从某处获得价格和所有权……感谢@Obsidian Age的快速反馈!我将cart.php文件更改为具有唯一名称,并将checkout.php更改为直接输出。但是我得到了一个解析错误?分析错误:语法错误,意外的“”(T_封装的_和_空格),需要标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串)Hmm,显然在直接回显时不能对数组使用单引号
echo“['a']”
有效,而echo“$a[b]”
有效,但显然echo“$a['b']”
是语法错误。我现在将更新我的答案,以便首先将它们分配给一个变量。修复-新的直接输出方法应该可以工作-我的道歉:)完全没有问题,非常感谢编辑@Obsidian Age。我还弄乱了我的语法,结果我发布了name=“id[]”并查找id[]“foreach($_POST['id']as$id)”。啊!
<table>
<tr>
<th>ID</th>
<th>Product</th>
<th>Price</th>
</tr>
<tr>
<td>A123</td>
<td>Item1</td>
<td>$1000</td>
</tr>
<tr>
<td>Z999</td>
<td>Item999</td>
<td>$9999</td>
</tr>
<tr>
<td>Total</td>
<td></td>
<td>$10999</td>
</tr>
</table>
<input type="hidden" name="checkout[]">
<input type="hidden" name="ids[]">
<input type="hidden" name="titles[]">
<input type="hidden" name="prices[]">
$titles = [];
$prices = [];
foreach($_POST['ids'] as $id) {
array_push($titles, $_POST['titles'][$id]);
array_push($prices, $_POST['prices'][$id]);
}
foreach($_POST['ids'] as $id) {
$title = $_POST['titles'][$id];
$price = $_POST['prices'][$id];
echo "
<tr>
<td>$id</td>
<td>$title<td>
<td>$price</td>
</tr>
";
}