我正在尝试使用PHP编写HTML表单。我一直在项目上执行此操作直到当前功能并遇到一个问题,我有一个带有数量下拉菜单的项目列表。用户将选择所需的每个项目的数量,并将表格发布到下一页,其中可以访问每个项目的选定值。
我之前没有使用<select><option>
,据我所知,所有这些下拉菜单都是单独的形式。
通过测试表单,我可以发布表格中最后一项的选项值,但它与任何内容都不匹配。
<?php
require("../functions/DbConnect.php");
$query = "select * from item_set_menu";
$result = mysqli_query($DB,$query);
echo "<form method='POST' action='../html/order.php'>";
echo "<table><th>Item</th><th>Price</th><th>Image</th><th>Add</th>";
while($row = mysqli_fetch_assoc($result)){
echo "<tr>";
echo "<td>".$row['set_name']."</td>";
echo "<td>".$row['set_price']."</td>";
echo "<td><img id='thumb' src='".$row['set_img']."'></td>";
echo "<td><select id='drop-menu' name='quantity[]'>
<option value='0'>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select></td>";
echo "</tr>";
}echo "</table>";
echo "<center>
<input type='hidden' value'".$row['set_name']."' name'set_name'>
<input type='hidden' value'".$row['set_price']."' name'set_price'>
<input type='hidden' value'quantity[]' name'quantity'>
<input type='submit' value'order' name'Submit'>
</center>";
echo "</form>";
?>
在这里期待第一项的输出。 表格帖子页面 - &gt;
<?php
require("../functions/DbConnect.php");
$set_name =$_POST['set_name'];
$set_price =$_POST['set_price'];
$quantity =$_POST['quantity'];
echo "<ol>
<li>".$set_name[0]."</li>
<li>".$set_price[0]."</li>
<li>".$quantity[0]."</li>
<ol>
";
?>
答案 0 :(得分:0)
您的HTML充满了错误,您不应该将它与PHP混合使用。试试这个。值得注意的变化是您的表单元素现在实际上具有name
属性,名称包含PHP数组表示法[]
,并且它们位于循环内而不是外部。但是这段代码仍有很多错误:
<?php
require("../functions/DbConnect.php");
$query = "select * from item_set_menu";
$result = mysqli_query($DB,$query);
while($row = mysqli_fetch_assoc($result)){
$rows[] = $row;
}
?>
<form method='POST' action='../html/order.php'>
<table><th>Item</th><th>Price</th><th>Image</th><th>Add</th>
<?php foreach ($rows as $row):?>
<tr>
<td><?=$row['set_name']?></td>
<td><?=$row['set_price']?></td>
<td><img id='thumb' src='<?=$row['set_img']?>'></td>
<td><select id='drop-menu' name='quantity[]'>
<option value='0'>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select>
<input type='hidden' value='<?=$row['set_name']?>' name='set_name[]'>
<input type='hidden' value='<?=$row['set_price']?>' name='set_price'>
</td>
</tr>
<?php endforeach;?>
</table>
<center>
<input type='submit' value='order' name='Submit'>
</center>
</form>
注意我已将数据库结果加载到数组中,并使用alternative syntax和short echo tags将PHP入侵到HTML中。