我有一个HTML表单作为"确认删除?"页面和我的"返回"按钮正在播放。
$string = "foo.php?id=" . $_POST['fooid'] . "&id2=" . $_POST['barid'];
<!-- ^^ this ends up being "foo.php?id=1&id2=2" -->
<form action='<?php echo $string; ?>'>
<input type='submit' value='Back'>
</form>
问题是,当按下按钮时,它链接到foo.php,而我的字符串中没有任何$ _GET数据,即使该字符串包含&#34; id = 1&amp; id2 = 2&#34;
P.S我改变了上面的代码,以便人们可以更好地理解它,这是原始代码:
<?php
$string = "xrays.php?id=" . $_POST['visitid'] . "&id2=" . $_POST['patientid'];
?>
<form action='delete.php' method='post'>
<input type='hidden' name='xrayid' value='<?php $_POST['xrayid']?>'>
<input type='submit' name='submit' value='Confirm Delete?'>
</form>
<form action='<?php echo $string; ?>'>
<input type='submit' value='Back'>
</form>
答案 0 :(得分:0)
您需要将get变量放在表单隐藏输入中,如下所示:
<form action='foo.php'>
<input type="hidden" name="id" value="1" />
<input type="hidden" name="id2" value="2" />
<input type='submit' value='Back'>
</form>
或者您可以使用链接:
<a href="foo.php?id=1&id2=2">Back</a>
答案 1 :(得分:0)
也许这不是最好的答案,但我想做那样的事情:
$string = "foo.php?id=" . $_POST['fooid'] . "&id2=" . $_POST['barid'];
<!-- ^^ this ends up being "foo.php?id=1&id2=2" -->
<form action='foo.php'>
<input type="hidden" name="fooid" value ="<php echo $_POST['fooid']; ?>" />
<input type="hidden" name="barid" value ="<php echo $_POST['barid']; ?>" />
<input type='submit' value='Back'>
</form>
这应该正常工作。
编辑:更改$ _GET na $ _POST
答案 2 :(得分:0)
让我们从表格提交开始。 W3C: Form Submission
接下来,让我们回顾$ _GET和$ _POST。 PHP Manual: $_GET | PHP Manual: $_POST
总之,在<form>
标记内,请使用method="get"
或method="post"
。根据您发送数据的方法,只有一个超全局数组将由成功的控件填充。我相信查询字符串必须来自GET请求URL(可能是默认值),而不仅仅是一个打到action=""
属性的普通字符串。我可能错误的查询字符串,但你有另一个问题。您在一个页面上使用两个表单。目前,我认为一次只能提交一种表格控件。
<form action='delete.php' method='post'> <!-- FORM 1 -->
<input type='hidden' name='xrayid' value='<?php $_POST['xrayid']?>'>
<input type='submit' name='submit' value='Confirm Delete?'>
</form>
<form action='<?php echo $string; ?>'> <!-- FORM 2, add a method="" attribute -->
<input type='submit' value='Back'>
</form>
在将method="get"
添加到表单2后,应该很清楚在两种表单方法中无法进行复合$_POST + $_GET
请求,并且您需要启动制作一个单一的整体形式,而不是两个模块化的形式。使用type="hidden"
标记的<input />
属性,在一个表单中,如在@ machineaddict的答案中,将有所帮助。但是,如果您明确使用每个标记的所有正确的属性,那么真正有用的是,以便您将来可以发现这样的错误。
在这种情况下,如果您的Web服务器收到完整的查询字符串,那么$_SERVER['QUERY_STRING']
元素将保留完整的查询字符串会很有帮助。