我有一个表单,里面有一些文本输入,我想在填写完后提交到db。我是一个PHP新手,所以我不知道如何将所有的值保存到一个数组中并提交。
这是我的表格,用表单包装。
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
</br>
<form action="" method="post">
<div id="wrapper">
<button type="submit" class="btn" name="add_device">Add devices</button>
</div>
</br>
<table id="ble_table" class="table table-bordered table-striped" cellspacing="0" width="100%">
<tr>
<th>No.</th>
<th>Serial no.</th>
<th>IMEI</th>
</tr>
<tr>
<td>1</td>
<td><input type="text" placeholder="Serial no." class="inputs" name="serial_no" id="serial_no" /></td>
<td><input type="text" placeholder="IMEI" class="inputs lst" name="imei" id="imei" /></td>
</tr>
</table>
</form>
</form>
当点击回车时添加新行的jquery。
var i = $('table tr').length;
$(document).on('keyup', '.lst', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
html = '<tr>';
html += '<td>' + i + '</td>';
html += '<td><input type="text" class="inputs" name="serial_no' + i + '" id="serial_no' + i + '" /></td>';
html += '<td><input type="text" class="inputs lst" name="imei' + i + '" id="imei' + i + '" /></td>';
html += '</tr>';
$('table').append(html);
$(this).focus().select();
i++;
}
});
$(document).on('keydown', '.inputs', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
var index = $('.inputs').index(this) + 1;
$('.inputs').eq(index).focus();
event.preventDefault();
}
});
有一件很重要的事情要知道注意:这是一个动态表,所以当我按下回车键时,我实际上是在创建一个新的行(见jquery函数)。
编辑:
打印$_POST给我的是这样的。
Array ( [0] => serial1 ) Array ( [0] => imei1 ) serial2imei2serial3imei3serial4imei4
我正在这样循环。
$myArray = $_POST;
foreach ($myArray as $index) {
print_r($index);
}
编辑准备好的语句。
$serial_no = e($_POST['serial_no']);
$imei = e($_POST['imei']);
$entrycount = count($serial_no);
$sales_date = date("'Y-m-d H:i:s'");
$cus_id = "1";
$stmt = $db->prepare("INSERT INTO devices (serial_imei,serial_no,type_id,cus_id,sales_date) VALUES (?,?,?,?,?)");
for ($loop = 1; $loop <= $entrycount; $loop++) {
$stmt->execute([$imei[$entrycount]], [$serial_no[$entrycount]], 1, $cus_id, $sales_date);
}
$pdo->commit();
你的表格将发布2个数组,其中包含以下数值 serial
和 imei
的值。当你确认它们有相同数量的条目后,你只需要循环其中的一个数组,从两个数组中提取值并将它们插入到你的数据库中。
由于你的问题没有包含任何与你的数据库连接相关的内容,我只能向你展示你将使用的变量来将数据插入到你的数据库中。在进入循环之前,使用PDO并准备插入(这里有一个很好的参考 来让你开始使用PDO和准备)。)
$serial_no = $_POST['serial_no'];
$imei = $_POST['imei'];
$entrycount = count($serial_no);
for ($loop = 1;$loop <= $entrycount; $loop++) {
//
// The values from your form will be in the following variables:
//
//
// $serial_no[$entrycount]
// $imei[$entrycount]
//
// The variables shown above are what you will have to insert into your DB.
//
}