不使用表单设置POST变量

时间:2010-08-05 18:44:38

标签: php html post

有没有办法设置$_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上设置而不使用隐藏字段。

如果仍然不清楚,请告诉我,谢谢你的帮助。

4 个答案:

答案 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>