我正在创建多个插入页面,用户可以在其中选择需要插入多少条记录。
<form name="" action="" method="post">
<p>Write Down How many rows are you trying to insert<input type="text" name="numb" placeholder=""/></p>
<input type="submit" name="add"/><br>
<?php
if(isset($_REQUEST['add'])){
$add=$_POST['numb'];
for($i=0; $i<$add; $i++) {
echo "<form method=\"post\" action=\"2.php\" >";
echo "Water Pump<input type=\"text\" name=\"dap\"/><br>
Tractor Hiring<input type=\"text\" name=\"tractor\"/><br><form>";
} echo "<input type=\"submit\" name=\"save\"/><br>";
}
?>
我没有重定向到第2页。此代码位于第2页。
if(isset($_REQUEST['save'])){
$insert=$conenction->query("insert into machinery (tractor_hiring,water_pump)VALUES('".$_POST['tractor']."','".$_POST['dap']."')");
if($insert!=true)
echo "nothing happens";
else
echo "good to go";
}
答案 0 :(得分:0)
我将展示我将如何做到这一点,试图做一个步骤:
将字段名称更改为machine[][dap]
和machine[][tractor]
使用machine[]
将创建一个数组,每个字段名称都在[]
内。
创建一个名为(例如)$sql
的新数组,如下所示:
$sql=array();
使用$_POST
循环每个foreach
:
foreach($_POST['machine'] as $v)
在foreach
内,您会将“内置”查询内容分配给$sql
:
$sql[]='"'.my_escape($v['dap']).'","'.my_escape($v['tractor']).'"';
通知:my_escape
是一个虚构的函数,用于转义数据(如mysql_real_escape_string()
)。
运行您的查询,并使用它加入数组:
$connection->query('insert into machinery (tractor_hiring,water_pump)VALUES('.implode('),(',$sql).')');
最终代码(文件1):
<form name="" action="" method="post">
<p>Write Down How many rows are you trying to insert<input type="text" name="numb" placeholder=""/></p>
<input type="submit" name="add"/><br>
<?php
if(isset($_REQUEST['add'])){
$add=$_POST['numb'];
for($i=0; $i<$add; $i++) {
echo "<form method=\"post\" action=\"2.php\" >";
echo "Water Pump<input type=\"text\" name=\"machine[][dap]\"/><br>
Tractor Hiring<input type=\"text\" name=\"machine[][tractor]\"/><br><form>";
} echo "<input type=\"submit\" name=\"save\"/><br>";
}
?>
最终代码(文件2):
<?php
if(isset($_REQUEST['save'])){
$sql=array();
foreach($_POST['machine'] as $v)
{
$sql[]='"'.my_escape($v['tractor']).'","'.my_escape($v['dap']).'"';
}
$connection->query('insert into machinery (tractor_hiring,water_pump)VALUES('.implode('),(',$sql).')');
if($insert!=true)
echo "nothing happens";
else
echo "good to go";
}
?>
注意:我避免触及代码错误(仅在第二个文件中更改,因为它可怕)。你应该以适当的方式缩进每个文件!
另请注意,我在最终代码中使用了相同的虚构函数。
对于报告的第1页问题,以下是更改:
表单无效。通过设置action="#"
。
仅发送带有值的输入。 <input type="submit" name="add"/>
没有价值
<input type="submit" name="add" value="Add"/>
注意:value
也将用作要显示的文字。
主</form>
没有结束<form>
。
最终结果:
<form action="#" method="post">
<p>Write Down How many rows are you trying to insert<input type="text" name="numb" placeholder=""/></p>
<input type="submit" name="add" value="Add"/><br>
</form>
<?php
if(isset($_REQUEST['add'])){
$add=$_POST['numb'];
for($i=0; $i<$add; $i++) {
echo "<form method=\"post\" action=\"2.php\" >";
echo "Water Pump<input type=\"text\" name=\"machine[][dap]\"/><br>
Tractor Hiring<input type=\"text\" name=\"machine[][tractor]\"/><br><form>";
} echo "<input type=\"submit\" name=\"save\"/><br>";
}
?>