目前我正在编写一本教科书,用PHP订购html表格
用户显示了教科书列表,每个教科书都有一个数量下拉菜单(他们可以选择订购1个数量或2,3或4个)
每本教科书都有一个unqiue textbookId编号。
如何创建一个html表单,可以确定他们订购哪本教科书以及他们订购的数量?
我通常通过创建多个html表单来解决这类问题(每个表单都包含textbookId的隐藏字段),但问题是会有多个提交按钮。
但我只有一个提交整个教科书清单的按钮。
有人可以帮助我:)非常感谢提前
如果可能的话,你能告诉我如何处理php中的数据。
干杯
这是我目前的html表单代码:
<div class="tables">
<form action="process-order" id="login-form" method="get" name="login-form"></form>
<table class="orders">
<tr>
<th>textbookId</th>
<th>Subject</th>
<th>Title</th>
<th>Price</th>
<th>Quantity</th>
</tr>
<tr>
<td>1</td>
<td>English</td>
<td>English ABC</td>
<td>33.00</td>
<td>
<div align="center">
<select name="mydropdown">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</td>
</tr>
<tr>
<td>2</td>
<td>Math</td>
<td>Math SignPost</td>
<td>122.00</td>
<td>
<div align="center">
<select name="mydropdown">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</td>
</tr>
</table>
<input type="submit" name="submit" id="submit" value="Next">
</form>
</div>
答案 0 :(得分:1)
我认为你已经在数据库中有一个表来存储表单中的数据,对吗?
然后我会在这里仅输出php端,好吗?
<强> action.php的强>
<?php
if ($_POST) {
$mydropdown = $_POST['mydropdown'];
$mydropdown2 = $_POST['mydropdown2'];
$response = mysql_query("INSERT INTO your_table ('id','mydropdown','mydropdown2') values (NULL,'$mydropdown','$mydropdown2') ");
if (empty($response)) { die("Error in your query"); }
}
?>
观察:您拥有图书的名称,价格等,如果您想存储创建输入字段所需的信息,否则此信息将不会存储在您的数据库中。
你的HTML方面有类似的东西。
<td>English ABC</td>
- &gt; <input type="text" value="" name="name_book" />
与前面提到的输入字段一样。
答案 1 :(得分:1)
一种可能性是将书籍ID编码到提交的表格元素中,例如<select name="book_1">
对于这本书1.
<tr>
<td>1</td>
<td>English</td>
<td>
<div align="center">
<select name="book_1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</td>
</tr>
<tr>
<td>2</td>
<td>Math</td>
<td>
<div align="center">
<select name="book_2">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</td>
</tr>
PHP处理书籍如下:
<?php
$books = array();
if ($_GET) {
foreach ($_GET as $key => $value) {
$keys = split("_", $key);
if (count($keys) == 2 && $keys[0] == "book") {
$id = $keys[1];
$books[$id] = $value;
}
}
}
// echo "Ordered: <br />";
// foreach ($books as $id => $value) {
// echo "$id : $value <br />";
// }
?>
答案 2 :(得分:0)
您是否考虑过使用javascript来解决这个问题?特别是jQuery?您可以调用函数来迭代,例如:
<script>
function submitChanges() {
$('.mydropdown').each(function(){
ddlId = $(this).attr('id');
id = ddlId.split('_');
ddlVal = $(this).val();
$.ajax({
type:'POST',
url: <post_url>,
data: 'id='+id[1]+'val='+ddlVal,
success: function (){}
});
});
}
</script>
因此,上面的函数会将选择的POST发布到给定页面,这样可以获得所需数量的书籍。
生成HTML时,请确保每个select都定义了“class”和“id”:
<select class="mydropdown" id="mydropdown_{textbookid}" name="mydropdown">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
textbookid将通过PHP添加
在帖子中PHP将包含
if ($_POST) {
$id= $_POST['id'];
$val= $_POST['val'];
$query = "INSERT INTO purchase (textbookid, quantity) VALUES ({$id},{$val})";
}