php文件中有多个html表单

时间:2013-08-23 21:10:32

标签: php html forms

我有一个基于php和html的工具,其表单在提交时会输出使用echo命令重新格式化的数据。

我想将第二个表单添加到同一页面,也将使用echo输出。

我的问题是,当我提交第二张表格时,第一张表格输出消失了。我想这样做,这样第一种形式的回声输出在提交第二种形式时不会消失,所以它们都会同时出现在屏幕上。

我有办法做到这一点吗?

3 个答案:

答案 0 :(得分:2)

一次只能提交页面中的一个<form>块。提交另一个表单时,不会提交一个表单中定义的<input>个字段。

e.g。

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

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

点击提交将提交foo字段, OR 一个bar字段。不是都。如果您希望提交两个字段,则必须将它们构建为SINGLE形式:

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

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

答案 1 :(得分: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); } ?>

答案 2 :(得分: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出现,而表单1中的值将在form_one中保持不变,而提交表单中的值将保留两个值。

希望它有所帮助:)