这是我上一期的延续。我使代码变得简单,并且怀疑问题在于第二个表单提交。
这是代码结构:
- 一个表格
(form1
) 有两个输入字段的名称和地点 - 提交表单后,(并且仅当用户在两个字段中输入数据时)创建另一个表单
(form2)
,其中text area
显示php echo
来自上一个表单和另外两个提交按钮 - 实际上,我使用第二个表单的提交按钮进行文本保存和电子邮件(这里我只是用一个简单的 textarea echo 替换它以使其简单)
代码:
<html>
<body>
<div class="emcsaninfo-symcli-main">
<form id="form1" name="form1" action=" " method="post" >
<div class="input">Your Name</div>
<div class="response"><span><input class="textbox" id="myname" name="myname" type="text" value="" /></span> </div>
<div class="input">Your Place</div>
<div class="response"><span><input class="textbox" id="myplace" name="myplace" type="text" value="" /></span> </div>
<div class="submit">
<input id="first_submit" type="submit" name="first_submit" value="first_submit" />
</div>
</form>
<?php
if(!empty($_POST['myname']) && !empty($_POST['myplace']) )
{
$myname = $_POST['myname'];
$myplace = $_POST['myplace'];
?>
<form id="form2" name="form2" action=" " method="post" >
<textarea onclick="this.select()" name="output_textarea" id="output_textarea" cols="100" rows="25" readonly>
<?php
echo "My name is $myname and I am from $myplace";
?>
</textarea>
<input id="submit1" type="submit" name="name_field" value="submit1" />
<input id="submit2" type="submit" name="place_field" value="submit2" />
</form>
<?php
function name()
{
echo $_POST["output_textarea"];
}
if(isset($_POST['name_field']))
{
name();
}
function place()
{
echo $_POST["output_textarea"];
}
if(isset($_POST['place_field']))
{
place();
}
}
?>
</div>
</html>
</body>
问题:第一个表单form1
提交工作正常。它将使用另外两个提交按钮submit1
和submit2
. 但是当我使用这两个按钮提交第二个表单时form2
,表单没有正确提交,它只是用初始代码刷新了 html。
我的要求是当我按下第二个表单提交按钮时,它必须在将第一个表单 textarea 保持在其位置之后再次回显来自 textarea 的输出。
PHP 小提琴:
我已经设置了一个 php fiddle 来了解问题PHP FIDDLE MAIN PHP FIDDLE执行结果-