自动填写表单并提交表单不会将参数提供给服务器

sik*_*kas 1 javascript php forms dom

我有一个由JS自动填充的表单

我的表格是:

<form id="doSubmit" method="post">
    <input type="text" id="usr" />
    <input type="password" id="pwd" />
</form>
Run Code Online (Sandbox Code Playgroud)

我的JS是:

document.forms["doSubmit"].elements["usr"].value = usr;
document.forms["doSubmit"].elements["pwd"].value = psw;
document.forms["doSubmit"].action = location.pathname + "user";
document.forms["doSubmit"].submit();
Run Code Online (Sandbox Code Playgroud)

现在在下一页是PHP,当我尝试使用时,我得到了这个错误Undefined index,当我输入时,print_r($_POST)我得到了Array()

知道如何在下一页发布表单数据吗?

Jac*_*kin 8

您的input元素需要具有以下name属性:

<form id="doSubmit" method="post" action="">
    <input type="text" id="usr" name="usr" />
    <input type="password" id="pwd" name="pwd" />
</form>
Run Code Online (Sandbox Code Playgroud)

完成此操作后,您应该能够在接收PHP脚本中看到数组中的usrpwd$_POST.(键将是HTML name属性,值将是相应的valueHTML属性.)

所以,说你的表格看起来像这样:

<form id="doSubmit" method="post" action="">
    <input type="text" id="usr" name="usr" value="someuser"/>
    <input type="password" id="pwd" name="pwd" value="somepassword"/>
</form>
Run Code Online (Sandbox Code Playgroud)

你的$_POST数组看起来像这样:

Array (
  'usr' => 'someuser',
  'pwd' => 'somepassword'
)
Run Code Online (Sandbox Code Playgroud)

jsFiddle例子

  • @sikas没有任何意义. (2认同)
  • 在Firebug中启用网络监控并检查发送到PHP脚本的HTTP标头,确保POST阵列在那里...... (2认同)