GET表单中的PHP POST表单

时间:2012-10-03 16:20:06

标签: php html forms post get

我怎样才能做到这一点?

GET表单中的POST表单

首先我在3文本框中输入数据并按下GET提交按钮,然后当我按下POST提交按钮时,它就像GET一样,不显示我的if语句所说的数据:

if(isset($_POST['post'])){ echo $_POST['data1']."<br/>".$_POST['data2']."<br/>".$_POST['data3']; }

请帮我解决这个问题..我真的需要这个

<!doctype html>

<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body>
<?php
if(isset($_POST['post'])){
    echo $_POST['data1']."<br/>".$_POST['data2']."<br/>".$_POST['data3'];
}
?>
<form action="" method="get">
    <form action="" method="post">
        <input type="text" name="data1" value="<?php if(isset($_GET['data1'])) echo $_GET['data1']; ?>"/>
        <input type="text" name="data2" value="<?php if(isset($_GET['data2'])) echo $_GET['data2']; ?>"/>
        <input type="text" name="data3" value="<?php if(isset($_GET['data3'])) echo $_GET['data3']; ?>"/>
        <input type="submit" name="get" value="GET"/>
        <input type="submit" name="post" value="POST"/>
    </form>
</form>
</body>
</html>

提前谢谢你们!

4 个答案:

答案 0 :(得分:2)

嗯,这是概念证明:

<form>
    <input name="t" />
    <input type="submit" value="with GET" />
    <input type="submit" value="with POST"
           onclick="this.parentNode.method='POST';"/>
</form>

当然,将JS从HTML中移除会更好,但正如我所说的那样,它只是为了说明原则上如何做到这一点。

正如@cdhowie正确地注意到的那样,你不能在另一个form元素中包含form元素;浏览器将如何解释这个结构,它取决于它们(也许内部form将被忽略为无效元素),但它绝对不允许您同时使您的输入属于两个形式

答案 1 :(得分:1)

根据HTML规范,<form>元素可能没有其他<form>元素作为后代。 (见this related question。)

因此,您所拥有的是无效的HTML。在这种情况下,浏览器可以做任何它认为合理的事情,包括拒绝渲染页面。浏览器之间的行为可能不一致。

答案 2 :(得分:1)

您不能在其他表单中包含表单。像按钮这样的Facebook就是一个很好的例子,你不能把它放在一个表格中,否则你可能会破坏某些东西。

答案 3 :(得分:0)

这不是正常程序..这是不可能的。我想,你想要同时拥有GET和POST的效果。也许你可以用一些讨厌的技巧做到这一点,用Javascript将它们添加到url的末尾。