如何保存值到三个表单的数据库与一个提交在php
how to save the values into database of three forms with one submit in php
嗨,我有三个表单,我想保存三个表单的值与一个提交按钮位于PHP的三个表单之外,我使用javascript提交我的表单,现在我要将数据保存到我的数据库。这是我的javascript
function submit()
{
document.form1.submit();
document.form2.submit();
document.form3.submit();
}
这是我的php
if(isset($_POST["submit"])){
browse("1213 1314");
$gen1 = mysql_query("SELECT MAX(accode) AS maxcode FROM quotmain LIMIT 0,1 ") or die(mysql_error());
if (mysql_num_rows($gen1) > 0) {
$vvouch = mysql_fetch_assoc($gen1);
$qvouch = $vvouch["maxcode"] + 1;
} else{
$qvouch = '1';
}
$a = 1;
$vouchdt = mydt($_POST["vouchdt"]);
$name = $_POST["cmbparty"];
$refno = $_POST["refno1"];
browse($refno);
$attn = $_POST["attn"];
$subj = $_POST["subject"];
$msg = $_POST["messsage"];
$rem = $_POST["rem"];
$count = $_POST["items"];
$h = $_POST["h"];
$status = $_POST["cmbstatus"];
mysql_query("DELETE FROM quotdtl WHERE vouchno='$qvouch'") or die(mysql_error());
for ($i = 1; $i <= $count; $i++) {
$ord = $_POST['ord_' . $i];
$srno = $_POST['srno_' . $i];
$descrip = $_POST['descrip_' . $i];
$unit = $_POST['unit_' . $i];
$rate = $_POST['rate_' . $i];
mysql_query("INSERT INTO `quotdtl`(vouchno, orderby, srno, `descrip`, unit, rate)
VALUES('$qvouch', '$ord', '$srno', '$descrip', '$unit', '$rate')") or die(mysql_error());
}
mysql_query("DELETE FROM quotnotes WHERE vouchno='$qvouch'") or die(mysql_error());
for ($i = 1; $i <= $h; $i++) {
$notes = $_POST['notes' . $i];
mysql_query("INSERT INTO `quotnotes`(vouchno, `notes`)
VALUES('$qvouch', '$notes')") or die(mysql_error());
}
if ($addflag == 1) {
mysql_query("INSERT INTO `quotmain`(vouchno, `vouchdt`, `party`, refno, `attn`, `subject`, `message`, `rem1`, `status`, `username`)
VALUES($qvouch, '$vouchdt', '$name', '$refno', '$attn', '$subj', '$msg', '$rem', '$status','$_SESSION[username]')") or die(mysql_error());
insmess();
header("refresh: 1; quotation.php?mode=true");
} else {
$mvouch = $_POST["vouch"];
mysql_query("UPDATE `quotmain` SET `vouchdt`='$vouchdt', `name`='$name', refno='$refno', `attn`='$attn', `subject`='$subj',
`message`='$msg', `rem1`='$rem', `username`='$_SESSION[username]' WHERE vouchno = '$mvouch' ") or die(mysql_error());
updmess();
header("refresh: 1; menu.php?action=quotation");
}
}
您只需将所有对象放在一个<form>
标记中。因为你只调用了一个提交按钮
一次只能提交一个表单。在您的示例中,一旦调用form1.submit(),页面就会导航。
使用Ajax可以提交所有需要的表单。
您可以使用下面的jQuery post来实现
$('button').click(function() {
$('form').each(function() {
$.post(this.action, $form.serialize());
});
});
如果上面的不可行,那么为表单提供不同的目标。当你点击submit
时,会打开2个新的窗口/选项卡<form name="form1" id="form1" method="post" action="post.php">
<form name="form2" id="form2" method="post" action="post.php" target="_blank">
<form name="form3" id="form3" method="post" action="post.php" target="_blank1">
或者,你可以有3个不同的隐藏IFrame和指定目标为IFrame在您的表单
<iframe name='if1' id='if1' src='dummy.html' border='0' frameborder='0' scrolling='auto' width='0' height='0'></iframe>
<iframe name='if2' id='if2' src='dummy.html' border='0' frameborder='0' scrolling='auto' width='0' height='0'></iframe>
<iframe name='if3' id='if3' src='dummy.html' border='0' frameborder='0' scrolling='auto' width='0' height='0'></iframe>
然后你的表单应该是
<form name="form1" id="form1" method="post" action="post.php" target="if1">
<form name="form2" id="form2" method="post" action="post.php" target="if2">
<form name="form3" id="form3" method="post" action="post.php" target="if3">
您还可以使用以下方法:
使用你的javascript submit()
函数,而不是:
form1.submit();
form2.submit();
form3.submit();
你可以迭代form2和form3,然后像这样给form1添加元素:(这段代码没有经过测试,它只是一个概念)
for (element in form2.elements) {
form1.elements['form2['+element['name']+']'] = element;
}
for (element in form3.elements) {
form1.elements['form3['+element['name']+']'] = element;
}
form1.submit();
这样,在你的form1中,你有来自其他表单的所有数据,你可以告诉哪个表单提交了哪个数据,因为form2数据在$_POST['form2']
数组中,而form3数据在$_POST['form3']
数组中。Form1数据仍然可以通过常规$_POST['field']
访问。
祝你项目顺利。
仪式警告:请不要使用mysql_函数,使用mysqli_或PDO接口代替。
这个代码:function submit(){
document.form1.submit();
document.form2.submit();
document.form3.submit();
}
将不起作用,如果表单目标相同。
在这种情况下,您必须通过javaScript获取表单数据,并更好地将其编码为JSON数组,然后POST到服务器。
访问id = 'SpecialInput1'的第一个表单输入值,使用:
var v1 = document.forms[0].SpecialInput.value;
// you can use form name also:
var v1 = document.myFirstForm.SpecialInput.value;
编写一个循环,将数据收集到Js对象中,如f1Data = {"address":"nowhere", "name": "John", "姓氏":"doe"}…然后将f2data和f3Data放入数组中:[f1data,f2data, f3Data],然后json对它们进行编码并将它们发送到服务器。
在服务器上json_decode post数据并对其进行任何操作
- 解析云代码作业:删除在数据库中已经存在一个小时的行
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- 为什么我从一个空的mongodb数据库中获取数据
- SuiteScript:如何有一个自定义的数据字段来从数据库加载信息
- 如何根据 jsp 中数据库中的值在下拉列表中选择一个值
- 两个服务器可以访问一个公共的mongoDB数据库吗?
- 如何使用一个代码库在线和离线访问 HTML5/JS 应用程序中的数据库
- HTML5数据库保存了详细信息以及一个按钮
- 从另一个选择框并使用数据库连接填充选择框
- 我有一个mysql的输入文本字段.那么,如何通过ajax从数据库中输出json表呢
- 检测圆圈内的标记gmap3,只返回数据库中的最后一个标记
- Rails——在每个数据库条目中运行一个javascript
- 为什么我可以添加一个新主题,但我可以't向SQLite数据库添加新注释
- 我想单击一个
- 并获取 id 以通过 POST 将其插入数据库,可以吗?
- 将数据库存储/备份到一个文件中,IndexeDB、WebSQL和SQLlite的区别
- 我想显示数据库中的数据.如果我们新添加一个表单数据,我想附加显示的新帖子而不使用代码点火器刷新
- 如何使用 html 表单中的一个文本字段来搜索数据库表中的任何列
- 如何为每个 Web 套接字仅使用一个数据库连接
- 2个安卓应用程序的数据库(一个Java,另一个Javascript)