0

我怎样才能做到这一点?

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

4 回答 4

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会被视为无效元素而被忽略),但它绝对不允许您同时使输入属于两种形式。

于 2012-10-03T16:27:44.183 回答
1

根据 HTML 规范,一个<form>元素可能没有其他元素作为后代。<form>(请参阅此相关问题。)

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

于 2012-10-03T16:21:59.467 回答
1

您不能在另一个表单中拥有一个表单。Facebook like 按钮就是一个很好的例子,你不能把它放在一个表单中,否则你可能会破坏一些东西。

于 2012-10-03T16:36:25.377 回答
0

这不是正常程序。这是不可能的。我认为,您希望同时获得 GET 和 POST 的效果。也许你可以用一些讨厌的技巧来做到这一点,用 Javascript 将它们添加到 URL 的末尾。

于 2012-10-03T16:23:50.963 回答