我正在为客户开发订购系统。在订单页面上是一个表格,显示所有不同的供应商及其产品,然后在该表格中是一个文本字段,他们可以在其中放置他们想要的每个产品的数量,当他们点击结帐时,它会在确认页面上显示订购的商品。 显示的代码在
下面 <?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,然后如果是,它将显示它。
答案 0 :(得分: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数据。)