2013-08-23 30 views
0

我有一个php和html工具,它具有一个表单,当它被提交时,输出使用echo命令重新格式化的数据。在一个php文件中有多个html表单

我想添加第二个窗体到同样的页面,也将使用回声输出。

我的问题是,当我提交第二个窗体时,第一个窗体输出消失。我想这样做是为了让第一种形式的回声输出在提交第二种形式时不会消失,因此它们都会同时出现在屏幕上。

有没有一种方法可以做到这一点?

+2

你能否提供你的代码请。您的HTML/PHP在描述您的问题时最有帮助。 – Mark

+0

从您的评论下面,它看起来像你想提交这两个表格。不知道为什么你这样做,但如果你必须添加一个隐藏的iframe,并提交第一个表单处理,以便您可以提交第二个表单之后。 '

Onimusha

回答

2

一次只能提交一个<form>块。在提交其他表单时,将不会提交一个表单中定义的域名<input>

例如

<form> 
    <input type="text" name="foo" /> 
    <input type="submit" /> 
</form> 

<form> 
    <input type="text" name="bar" /> 
    <input type="submit" /> 
</form> 

点击提交将提交无论是foo场,一个bar场。不是都。如果你想提交两个字段,那么你就必须要么构建成一个单一的形式:

<form> 
    <input type="text" name="foo" /> 
    <input type="text" name="bar" /> 
    <input type="submit" /> 
</form> 

或使用JavaScript将数据从一种形式复制到另一个。

+0

我不想同时提交。当我使用这个工具时,我会做第一次,然后再次做第二次,但我希望两者的输出都保持不变。现在当我做第二个时,第一个消失,因为&_POST条目不再存在。 – Jason

+1

所以你必须确保数据被提交给PHP,即使它不是合适的表单,所以当表单重新生成时,PHP可以填写字段的“值”。或者您使用一些Javascript来保存数据,例如作为cookie或使用本地存储。 –

0
<form method="post"> <div>Module1</div> <input type="text" 
value="module1" name="module_id"> <input type="text" value="title 1" 
name="title"> <input type="text" value="some text 1" name="text"> 
<input type="submit" name="form_1" value="submit"> </form> 

<form method="post"> <div >Module2</div> <input type="text" 
value="module2" name="module_id"> <input type="text" value="title 2" 
name="title"> <input type="text" value="some text 2" name="text"> 
<input type="submit" name="form_2" value="submit"> </form> 


<?php 

if(isset($_POST['form_1'])){ 

    echo '<pre>'; 
    print_r($_POST); } 

if(isset($_POST['form_2'])){ 

    echo '<pre>'; 
    print_r($_POST); } ?> 
+0

这个基本上做了我的代码已经做了什么。当你提交第二个表单时,第一个表单的'echo'数据就会消失。 – Jason

0

是的,你可以做到。

如:

// form1 on page a.php 

<form method="post" action="a.php" name="form_one" > 
<input type="text" name="form_1" value="if(isset($_POST['form_1'])) echo $_POST['form_1']; ?>" > 
<input type="submit" name="submit_1" > 
</form> 

<?php 

if(isset($_POST['submit'])) 
{ 
?> 
    <form method="post" action="a.php" name="form_two" > 
    <input type="text" name="form_2" value="if(isset($_POST['form_2'])) echo $_POST['form_2']; ?>" > 
    <input type="submit" name="submit_2" > 
</form> 
<?php 
} 
?> 

现在,当您将提交form_one你会看到form_two出现,并形成一个价值将在form_one和一个提交表单的两个值仍将保持不变。

希望它有帮助:)

相关问题