不使用表单设置POSTvariables
有没有一种方法来设置$_POST['var']
而不使用窗体相关的字段(无types='隐藏'),只使用PHP。 就像是
$_POST['name'] = "Denniss";
有没有办法做到这一点?
编辑:有人问我一些这方面的阐述。 所以例如,我有一个表单上的页面,表单看起来像这样
<form method='post' action='next.php'> <input type='text' name='text' value='' /> <input type='submit' name='submit' value='Submit'/> </form>
一旦提交button被点击,我想要redirect到next.php。 有没有办法让我设置$ _POST ['文本']variables为另一个值? 我如何使这个持久化,以便当我点击另一个提交button(例如)$ _POST ['文本']将是我在next.php上设置,而不使用隐藏的字段。
让我知道这是否仍然不清楚,谢谢你的帮助。
是的,只需将其设置为另一个值:
$_POST['text'] = 'another value';
这将覆盖对应于数组的text
键的以前的值。 $_POST
是超全局关联数组 ,您可以像正常的PHP数组那样更改这些值。
警告:此更改仅在相同的PHP执行范围内可见。 一旦执行完成,页面已经加载, $_POST
数组被清除。 新的表单提交将生成一个新的$_POST
数组。
如果要在表单提交中保留值,则需要将其作为input
标记的value
属性或从数据存储中检索。
如果你想将$ _POST ['text']设置为另一个值,为什么不使用:
$_POST['text'] = $var;
在next.php?
你可以使用ajax或通过发送http头+内容,如:
POST /xyz.php HTTP/1.1 Host: www.mysite.com User-Agent: Mozilla/4.0 Content-Length: 27 Content-Type: application/x-www-form-urlencoded userid=joe&password=guessme
你可以使用jQuery来做到这一点。 例:
<script src="jquery-1.11.2.min.js"></script> <script> $.ajax({ url : "next.php", type: "POST", data : "name=Denniss", success: function(data) { //data - response from server $('#response_div').html(data); } }); </script>