我是PHP的新手。我想在表单上保存多条记录。例如,假设我有一个带有一个ID的20记录表。当我输入18条记录时,2条是空的。现在,如何在忽略空记录的同时保存它们?
我将代码缩短为3条记录。
包含3条记录的FORM代码:
<form class="form-horizontal" method="POST" action="">
<div class="form-group">
<input type="text" id="inputDate" class="inputDate form-control" value="11/22/2013" name="tanggal">
</div>
<input type="hidden" name="id" id="id" value="<?$id;?>">
<table>
<thead>
<tr>
<th>DO</th>
<th>PO</th>
<th>Nama Relasi</th>
<th>Alamat</th>
<th>Pcs</th>
<th>Harga</th>
<th>Keterangan</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" class="do" name="do[]" id="do" ></td>
<td><input type="text" class="do" name="po[]" id="po" ></td>
<td><input type="text" name="name[]" id="name" ></td>
<td><input type="text" class="do2" name="address[]" id="alamat" ></td>
<td><input type="text" class="do" name="pcs[]" id="pcs" ></td>
<td><input type="text" name="price[]" id="price" ></td>
<td><input type="text" name="ket[]" id="ket" ></td>
</tr>
<tr>
<td><input type="text" class="do" name="do[]" id="do" ></td>
<td><input type="text" class="do" name="po[]" id="po" ></td>
<td><input type="text" name="name[]" id="name" ></td>
<td><input type="text" class="do2" name="address[]" id="alamat" ></td>
<td><input type="text" class="do" name="pcs[]" id="pcs" ></td>
<td><input type="text" name="price[]" id="price" ></td>
<td><input type="text" name="ket[]" id="ket" ></td>
</tr>
<tr>
<td><input type="text" class="do" name="do[]" id="do" ></td>
<td><input type="text" class="do" name="po[]" id="po" ></td>
<td><input type="text" name="name[]" id="name" ></td>
<td><input type="text" class="do2" name="address[]" id="alamat" ></td>
<td><input type="text" class="do" name="pcs[]" id="pcs" ></td>
<td><input type="text" name="price[]" id="price" ></td>
<td><input type="text" name="ket[]" id="ket" ></td>
</tr>
</tbody>
</table>
<div class="text-right">
<button type="submit" name="submit">Save</button><button type="reset">Delete</button>
</div>
</form>
和PHP代码:
<?
include "dbase.php";
if(isset($_POST['submit'])) {
for($i = 0; $i < 3; $i++) {
$do = $_POST['do'][$i];
$po = $_POST['po'][$i];
$name = $_POST['name'][$i];
$address = $_POST['address'][$i];
$pcs = $_POST['pcs'][$i];
$price = $_POST['price'][$i];
$ket = $_POST['ket'][$i];
$query = "SELECT max(id) FROM table1 ";
$ids=mysql_query($query);
$row=mysql_fetch_array($ids);
$row[0]++;
$norest=sprintf("%04d",$row[0]);
$format = DO14;
$id = $format.$norest;
$date = $_POST['tanggal'];
$SQL = "INSERT INTO table1 (id,date,do,po,name,address,pcs,price,ket) VALUES ('$id','$date','$do','$po','$name','$address','$pcs','$price','$ket')";
$result = mysql_query($SQL, $connect);
if ($result) {
echo "<div class='alert alert-success'><h5><b>Record save...</b></h5></div>";
}
else {
echo "<div class='alert alert-danger'><h5><b>Failure..</b></h5></div>";
}
}
}
?>
上面的代码没有任何反应。有人可以帮助我吗?
答案 0 :(得分:0)
很难说没有代码示例(如果你更新了我可以更新我的答案的问题),但是如果你有一个包含20个输入的表单,使用名为<input type="text" name="records[]" id="record-1" />
的数组,那么你可以迭代提交时$_POST['records']
。
foreach($_POST['records'] as $record) {
if(!empty($record)) {
// Insert record here
}
}
if(!empty($records))
可以替换为if($records)
或if($records != null)
,具体取决于您对“空”记录的具体需求。