嗨我有三种形式,我想保存三个表单的值,一个提交按钮位于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");
}
}
答案 0 :(得分:0)
您只需将所有对象放在一个<form>
标记中即可。由于您只调用一个提交按钮。
答案 1 :(得分:0)
仪式警告:请不要使用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”,“surname”:“doe”} ...然后将f2data和f3Data放入将它们分成一个数组:[f1data,f2data,f3data],然后json对它们进行编码并将它们发布到服务器上。
在服务器json_decode上发布数据并随意做任何事情。
答案 2 :(得分:0)
您一次只能提交一份表格。在你的情况下,一旦你调用form1.submit()页面导航。
使用Ajax,您可以提交所有必需的表单。
答案 3 :(得分:0)
您可以使用下面的jQuery帖子
来完成$('button').click(function() {
$('form').each(function() {
$.post(this.action, $form.serialize());
});
});
如果上述条件不可行,请为表单提供不同的目标。当你点击提交时,这将打开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">
答案 4 :(得分:0)
你也可以使用这样的解决方法:
使用您的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']
访问。
祝你的项目好运。