HTML表单/不完整的POST-Request

时间:2016-02-11 12:28:49

标签: html forms post

(听起来很不可思议 - 但是here's我的样本用于验证......)

我有一个包含三个输入控件的表单,当我提交它时,POST数据中只包含复选框(取自Chrome的Inspect /“Network”标签):

------WebKitFormBoundaryTpyTtgjdgNzBqZuV
Content-Disposition: form-data; name="mail"

checked
------WebKitFormBoundaryTpyTtgjdgNzBqZuV--

遗憾的是,表单本身并不是简约的 - 它嵌入在各种其他控件中,并且包含一个包含HTML的表,但是,验证了 - 我检查了它。) 相关控件的代码(全部位于table内的form内)是:

  • <input value="" type="text" id="rec">
  • <input type="checkbox" value="mail" id="mail" name="mail" onclick="bs(this)">
  • <textarea value="" rows="10" cols="80" id="txt"></textarea>

我现在花了好几个小时 - 也许我只是看了太多代码才能看到简单的解释?

P.S:是的,我承认 - 布局/设计远非最佳,但我主要关注的是获取请求...; - )

2 个答案:

答案 0 :(得分:2)

当您创建HTML表单时,不是该元素的id,将在请求中发送,它的名称是:

要获取所有输入元素,您可以在其他输入中添加名称,如下所示:

<form method="post" action=""> <!-- method == 'post' or 'get' -->
    <input value="" type="text" id="rec" name="rec" >
    <input type="checkbox" value="mail" id="mail" name="mail" onclick="bs(this)">
    <textarea value="" rows="10" cols="80" id="txt" name="txt"></textarea>
</form>

并获取(使用php)以便发布&#39;方法:

$myRec = $_POST['rec']; // get the element with the name 'rec'
$myMail = $_POST['mail']; // get the element with the name 'mail'
$mytxt = $_POST['txt']; // get the element with the name 'txt'

并获取它(使用php)以获取&#39; get&#39;方法:

$myRec = $_GET['rec']; // get the element with the name 'rec'
$myMail = $_GET['mail']; // get the element with the name 'mail'
$mytxt = $_GET['txt']; // get the element with the name 'txt'

这将在官方W3.org上解释here

答案 1 :(得分:1)

看起来你只给了一个&#39;名称&#39; (名称=&#34;邮件&#34)。你也需要给别人一个名字。这个名字&#39;是用于访问输入值的PHP。

<input value="" type="text" id="rec" name="rec">
<input type="checkbox" value="mail" id="mail" name="mail" onclick="bs(this)">
<textarea value="" rows="10" cols="80" id="txt" name="txt"></textarea>