我有多个表单,我有一个PHP脚本,我想用来处理这些表单,但是当我点击提交任何表单时...脚本由表单的数量处理,提交按钮命名'submitForm'在这种情况下,警报将显示3次而不是一次!我做得不对劲?
NB。我希望这很有意义吗?
html代码
<form action="" name="form1" method="post">
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>
<form action="" name="form2" method="post">
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>
<form action="" name="form3" method="post">
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="text" value="" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>
php脚本
<?php
if (isset($_POST['submitForm'])) {
echo('<script>alert("Form Submitted")</script>');
}
?>
答案 0 :(得分:8)
当我点击提交任何特定表格时,它会提交所有表格。
这不是真的 表单格式正确后,浏览器将仅提交当前格式 (和PHP无关)
然而,如果你的意思是,整个页面将被重新加载。这没关系 - 当您提交表单时,页面会重新加载。如果您需要其他行为,您必须解释您的意愿。
另请注意,没有任何文本字段发送到服务器,因为它们没有名称。
好吧,似乎你想问一下如何区分这些形式。我想我应该问的问题是,如何将特定表单传递给php,而不是编写多个php脚本来处理每个表单!
为每个
添加隐藏字段<input type="hidden" name="step" value="1" />
然后在PHP中
if ($_POST['step'] == 1) {
//first form
}
if ($_POST['step'] == 2) {
//second
}
答案 1 :(得分:3)
这向php提交了一种形式的许多形式。复制,粘贴,测试和学习。
<?php
if (isset($_POST['submitForm'])) {
print_r($_POST);
}
?>
<form action="" name="form1" method="post">
<input type="text" value="" name="A" />
<input type="text" value="" name="B" />
<input type="text" value="" name="C" />
<input type="text" value="" name="D" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>
<form action="" name="form2" method="post">
<input type="text" value="" name="A" />
<input type="text" value="" name="B" />
<input type="text" value="" name="C" />
<input type="text" value="" name="D" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>
<form action="" name="form3" method="post">
<input type="text" value="" name="A" />
<input type="text" value="" name="B" />
<input type="text" value="" name="C" />
<input type="text" value="" name="D" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>
对于第一种形式使用a,b,c,d,对于第二种形式使用e,f,g,h,对于第三种形式使用i,j,k,l并提交第二种形式,得到以下输出: / p>
Array
(
[A] => e
[B] => f
[C] => g
[D] => h
[submitForm] => Submit Form
)
答案 2 :(得分:1)
@Jay
Actually its not hard.
Once you supply form names, your work is done. the DOM does the rest.
write one php block to do your functions (create/update/retrieve/delete) Whichever button is clicked, by default it submits only the elements enclosed together with it.
if(!empty($_POST)){
if(isset($_POST['submit'])){
print "<pre>";
var_dump($_POST); // write your code here as you would
print "<pre>";
}
}
try this with your form above.
答案 3 :(得分:0)
如果您需要动态表单,可以尝试以下代码。虽然可以更改语句以从DB获取数据并使用foreach。希望你知道这一点。 在这里,我使用while($ n&lt; 10)表示10种动态表单。 如果您需要单独的表单名称,也可以使用以下标记。
<form action="" name="form<?=$n?>" method="post">
这将创建单独的表单名称,例如form1,form2等,但这里不需要。
<?php
if (isset($_POST['submitForm'])) {
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
$n=0;
while($n<10) {
$n++;
?>
<form action="" name="form1" method="post">
<input type="text" value="" name="A" />
<input type="text" value="" name="B" />
<input type="text" value="" name="C" />
<input type="text" value="" name="D" />
<input type="Submit" value="Submit Form" name="submitForm" />
</form>
<?php
}
?>
点击第5行时输出的示例页面。