使用PHP POST数组数据创建收据

使用PHP POST数组数据创建收据,php,html,arrays,Php,Html,Arrays,我正在学习PHP,并试图制作一个简单的购物车/处理脚本 我已经创建了商品购物车,但当用户承诺在购物车中购买商品时,我在收据中显示信息时遇到问题 为了节省空间/时间,我省略了项目列表和购物车的生成,如果您需要,可以找到它们 下面是将数据发布到mycheckout.PHP脚本的PHP cart.php(更新以反映变化) 如何以更有意义的方式发布信息,即关联数组。然后使用关联的数组以类似表格的格式显示信息 预期产出 <table> <tr> <th>ID

我正在学习PHP,并试图制作一个简单的购物车/处理脚本

我已经创建了商品购物车,但当用户承诺在购物车中购买商品时,我在收据中显示信息时遇到问题

为了节省空间/时间,我省略了项目列表和购物车的生成,如果您需要,可以找到它们

下面是将数据发布到mycheckout.PHP脚本的PHP cart.php(更新以反映变化)

如何以更有意义的方式发布信息,即关联数组。然后使用关联的数组以类似表格的格式显示信息

预期产出

<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>
  ";
}