[英]Need help with php html form
目前我正在編寫一本用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>
我建議您在數據庫中已經有一個表來存儲表單中的數據,對吧?
然后我會在這里僅輸出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>
- > <input type="text" value="" name="name_book" />
與前面提到的輸入字段相同。
一種可能性是將書籍ID編碼為提交的表格元素,例如書本1的<select name="book_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 />";
// }
?>
你有沒有想過用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})";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.