早上好!PHP MySQL插入數據庫
我正在嘗試創建一個登錄頁面,我們的員工可以將產品添加到我們的發票中。我爲您創建了一個測試頁面,以便您可以輕鬆地進行查看,也許可以看到此代碼的想法。在頁面上,我們的員工可以將產品僅添加到一張發票(因爲它是一個測試頁面),它是invoice_nr 2014002.我希望能夠以一種形式添加多個產品..我使用javascript來添加更多輸入字段,但每次運行查詢時,它都只會插入最後一行。
這是我的JavaScript代碼:
<script type="text/javascript">
function myFunction()
{
var table = document.getElementById("products");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
cell1.innerHTML = '<td>Description <input type="text" name="description" value=""></td>';
cell2.innerHTML = '<td>Qty <input type="text" name="qty" value=""></td>';
cell3.innerHTML = '<td>Price <input type="text" name="price" value=""></td>';
cell4.innerHTML = '<td><input type="button" onclick="removeRow(this)" value="Remove"></td>';
}
removeRow = function(el) {
$(el).parents("tr").remove()
}
</script>
這是形式的HTML:
<h1>Add more products to invoice</h1>
<form action="" method="post">
<table id="products">
<tr>
<td>Description <input type="text" name="description" value=""></td>
<td>Qty <input type="text" name="qty" value=""></td>
<td>Price <input type="text" name="price" value=""></td>
</tr>
</table>
<br />
<input type="button" onclick="myFunction()" name="addproduct" value="+ Add product"><br /><br />
<input type="submit" name="addproduct" value="Submit new products">
</form>
而在去年,這是PHP代碼..:
require_once("conn.php");
if(isset($_POST['addproduct'])){
$description = addslashes($_POST['description']);
$qty = (int)$_POST['qty'];
$price = addslashes($_POST['price']);
$db->query("INSERT INTO products SET
invoice_nr = 2014002,
description = '".$description."',
qty = '".$qty."',
price = '".$price."'
");
}
當然,我知道網站上的注入,但這只是我創建的基本測試頁面,因爲我不想張貼太多的代碼供您閱讀,否則。
我希望這是很容易理解 - 有一個愉快的一天偷窺:)
難道你不能只是每次提交清除輸入字段? –
我希望它只是一種形式,一個提交按鈕:) –
我認爲問題是通過'POST'只能發送一個帶有特定名字的值。我的意思是,由於您添加了越來越多的輸入字段,例如'name =「qty」',以前的字段值不會被髮送,因爲它們被最後一個字段中該名稱的值覆蓋。 –