0

我正在为客户开发一个订购系统。在订单页面上有一个表格,显示所有不同的供应商及其产品,然后在该表格上是一个文本字段,他们可以在其中输入他们想要的每种产品的数量,当他们点击结帐时,它会在确认页面上显示订购的东西. 显示代码如下

    <?php defined('C5_EXECUTE') or die("Access Denied.");

?> <div class="ccm-ui"><?php
$db= Loader::db();





$query = 'SELECT * FROM Vendors';

$results = $db->getAll($query);
?>
<form name="OrderForm" action="/confirm" method="POST">
 <table stlye="position:relative;"class="table">
              <thead>
                <tr>
                  <th>Quantity</th>
                  <th>Product</th>
                  <th>Category</th>
                  <th>Vendor</th>
                  <th>Address</th>
                </tr>
<?php
foreach ($results as $vendor) {
?>
<tr>
<td><input style="width:50px" type="text" name="quantities" value="0" size="1"  /></td>
<td><?php echo $vendor['Product'];?></td>
<td><?php echo $vendor['Category'];?></td>
<td><?php echo $vendor['Vendor'];?></td>
<td><?php echo $vendor['Address'];?></td>
</tr>
<?php
}
?>
</table>
<input type="submit" value="Checkout"<button style="float:right;" type="button" class="btn btn-primary"></button>
</form>
</div>

我唯一的问题是,当我尝试提取信息时,它只会提取最后一个文本字段的值,而不是全部。理想情况下,id 喜欢有一个 if 语句来检查文本值是否大于 0,如果是,它将显示它。

4

1 回答 1

0

您的问题起初听起来像您在显示表格行时遇到问题,但也许您遇到的问题只是在后端,试图提取从表单提交的数据?如果是这样,原因是因为您所有的文本框都具有相同的确切名称 ( quantities)。

为了解决这个问题,您可以在文本框名称中添加方括号并将某种产品 ID 放入括号中,然后在处理发布的表单时将其转换为数组。

例如,在前端表单上,您可以这样:

<input style="width:50px" type="text" name="quantities[<?php echo $vendor['Product'];?>]" value="0" size="1"  />

然后在后端处理表单时,您将获得以下信息:

$quantities = $_POST['quantities'];
foreach ($quantities as $product_name => $quantity) {
    echo "The quantity for product: " . $product_name . " is: " $quantity;
}

(显然你会想要echo在后端做一些其他的事情,但希望这能演示如何提取 POST 的数据。)

于 2013-09-19T18:42:31.667 回答