在询问之前,这是我的表格照片:
正如您所看到的,我有一个带有2个表格的表格,每个表格中有六个输入。
“Table Alat”和“Table Bahan”中的输入代码如下:
<form method='post' action='p_input.php'>
<table>
<tr>
<td>1.</td>
<td><input type='text' name='nama[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='merk[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='kemasan[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='mhs[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='jml[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='hps[]' style='width:100%;' autocomplete='off'>
<input type='hidden' name='jenis[]' value='alat' autocomplete='off'></td>
</tr>
</table>
<table>
<tr>
<td>1.</td>
<td><input type='text' name='nama[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='merk[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='kemasan[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='mhs[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='jml[]' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='hps[]' style='width:100%;' autocomplete='off'>
<input type='hidden' name='jenis[]' value='bahan' autocomplete='off'></td>
</tr>
<table width='100%' align='center' style='margin-top:0;'>
<tr>
<td><input name='reset' type='reset' id='bersihkan' value='Reset'>
<input name='submit' type='submit' id='ajukan' value='Send'></td>
</tr>
</table>
</table>
</form>
这里的差异是<input type='hidden' name='jenis[]' value='alat' autocomplete='off'>
,对于“Table Alat”,“Table Bahan”的值是'alat',值是'bahan'(我在这里没有问题,只是告诉你)。
这是我的p_input.php
脚本:
<?php
error_reporting(0);
session_start();
if(isset($_REQUEST['submit'])) {
include "../conf/koneksi.php";
$count = count($_POST['nama']);
$jurusan = $_POST['jurusan'];
$lab = $_POST['lab'];
$materi = $_POST['materi'];
$mahasiswa= $_POST['mahasiswa'];
for($i = 0; $i < $count; $i++){
$nama = mysql_real_escape_string($_POST['nama'][$i]);
$merk = mysql_real_escape_string($_POST['merk'][$i]);
$kemasan = mysql_real_escape_string($_POST['kemasan'][$i]);
$mhs = mysql_real_escape_string($_POST['mhs'][$i]);
$jml = mysql_real_escape_string($_POST['jml'][$i]);
$hps = mysql_real_escape_string($_POST['hps'][$i]);
$jenis = mysql_real_escape_string($_POST['jenis'][$i]);
$sql2= "ALTER TABLE tb_usulan AUTO_INCREMENT = 1";
mysql_query($sql2);
$sql=mysql_query("INSERT INTO tb_usulan (nama,merk,kemasan,kebutuhan,jml_kebutuhan,hps,jenis,materi_praktikum)
VALUES
('$nama', '$merk', '$kemasan', '$mhs', '$jml', '$hps','$jenis','$materi')") or die(mysql_error());
}
}
?>
我的问题是:如果我只填写“TABLE ALAT”中的输入并将“TABLE BAHAN”中的输入保持为空,那么当我单击“提交”时,我只想在表格中输入插入/ post to database,反之亦然,如果我只填写“TABLE BAHAN”中的输入并将“TABLE ALAT”中的输入保持为空,则只有“TABLE BAHAN”中的输入才会插入/发布到数据库。
更新问题:这只是一个表单和一个提交按钮,并同时将其插入到同一个表中。
答案 0 :(得分:2)
只需在for循环中进行检查。
for($i = 0; $i < $count; $i++)
{
//skip if nama is empty
if($_POST["nama"][$i] == ""){continue;}
$nama = mysql_real_escape_string($_POST['nama'][$i]);
$merk = mysql_real_escape_string($_POST['merk'][$i]);
$kemasan = mysql_real_escape_string($_POST['kemasan'][$i]);
$mhs = mysql_real_escape_string($_POST['mhs'][$i]);
$jml = mysql_real_escape_string($_POST['jml'][$i]);
$hps = mysql_real_escape_string($_POST['hps'][$i]);
$jenis = mysql_real_escape_string($_POST['jenis'][$i]);
$sql2= "ALTER TABLE tb_usulan AUTO_INCREMENT = 1";
mysql_query($sql2);
$sql=mysql_query("INSERT INTO tb_usulan (nama,merk,kemasan,kebutuhan,jml_kebutuhan,hps,jenis,materi_praktikum)
VALUES ('$nama', '$merk', '$kemasan', '$mhs', '$jml', '$hps','$jenis','$materi')") or die(mysql_error());
}
答案 1 :(得分:1)
记得我添加了输入字段。所以在应用解决方案之前删除它。因为你已经以原始形式输入了feild。
<table>
<tr>
<td>1.</td>
<td><input type='text' name='nama1' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='merk1' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='kemasan1' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='mhs1' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='jml1' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='hps1' style='width:100%;' autocomplete='off'>
<input type='hidden' name='jenis1' value='alat' autocomplete='off'></td>
</tr>
</table>
<table>
<tr>
<td>1.</td>
<td><input type='text' name='nama2' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='merk2' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='kemasan2' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='mhs2' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='jml2' style='width:100%;' autocomplete='off'></td>
<td><input type='text' name='hps2' style='width:100%;' autocomplete='off'>
<input type='hidden' name='jenis2' value='bahan' autocomplete='off'></td>
</tr>
</table>
<input type='submit' name="submit">
</form>
</body>
比运行查询的位置只更改该部分。
if(!empty($_POST['name1']))
{
//Run First query
}
if(!empty($_POST['name2']))
{
//run your second query
}
此代码执行此操作将检查值。如果值不为空,那么它将执行查询,否则它将不执行查询
和第二个是当您使用代码时,您不会有任何数组,因此您需要删除$ count变量。和你的foreach从代码循环。
第三件事。你需要在
之后设置值if(isset($ _ REQUEST ['submit'])){ 包括“../ conf / koneksi.php”;
对于下面的每个场地,因为我设置的很少
$ NAME1 = $ _邮政[ 'NAME1']; $ merk1 = $ _交[ 'merk1'];
对两个表的每个值执行此操作。
第四件事您需要更改查询中的值部分,例如您的值将是$ name1,依此类推第一个查询和第二个查询$ name2,依此类推。
希望我按照步骤解释这一点。并在执行步骤之前。如果你不明白,在你开始应用之前问我。
由于
答案 2 :(得分:1)
一个简单的解决方案是将表分开,如下所示:
<form name=formOne>
<table><!-- Alat etc. -->
</table>
<input type=submit>
</form>
<form name=formTwo>
<table><!-- Behan etc. -->
</table>
<input type=submit>
</form>
然后只推送提交的表格将被提交!
修改强> 使其仅使用一个提交按钮(客户端)。 添加以下jquery:
var lastForm;
$("form").click(function(){
lastForm = this;
});
$("input[type=submit]").click(function(){
$(lastForm).submit();
});
然后在表单元素之外添加提交按钮。 但最好的解决方案是检查服务器端字段。 (无论如何都应该这样做,因为你真的不能信任最终用户)。
但是在其他答案中已经提出过这个问题了!