有没有办法设置$_POST['var']
而不使用与表单相关的字段(没有类型='隐藏')并且只使用PHP。
像
$_POST['name'] = "Denniss";
有办法做到这一点吗?
编辑: 有人问我对此有所详述。例如,我的页面上有一个表单,表单看起来像这样
<form method='post' action='next.php'>
<input type='text' name='text' value='' />
<input type='submit' name='submit' value='Submit'/>
</form>
点击提交按钮后,我想重定向到next.php。有没有办法让$ _POST ['text']变量设置为另一个值?如何使这个持久化,以便当我点击另一个提交按钮(例如)时,$ _POST ['text']将是我在next.php上设置而不使用隐藏字段。
如果仍然不清楚,请告诉我,谢谢你的帮助。
答案 0 :(得分:78)
是的,只需将其设置为其他值:
$_POST['text'] = 'another value';
这将覆盖与数组的text
键对应的先前值。 $_POST
是超全局关联数组,您可以像普通PHP数组一样更改值。
警告:此更改仅在同一PHP执行范围内可见。执行完成并加载页面后,将清除$_POST
阵列。新表单提交将生成新的$_POST
数组。
如果您希望在表单提交中保留值,则需要将其作为input
标记的value
属性放在表单中,或者从数据存储中检索它。
答案 1 :(得分:6)
如果您想将$ _POST ['text']设置为其他值,为什么不使用:
$_POST['text'] = $var;
on next.php?
答案 2 :(得分:3)
您可以使用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
答案 3 :(得分:1)
你可以使用jQuery来做到这一点。例如:
<script src="https://code.jquery.com/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>