我怎样才能做到这一点?
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>
提前谢谢你们!
答案 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的末尾。