无法从PHP中的textarea获取价值

时间:2013-02-25 14:43:44

标签: php forms post html-parsing

我遇到了在PHP中获取文本区域值的问题(未定义)。

我的代码非常简单。 我的HTML是:

<form name="contactform" method="POST" action="submit_form.php">    
<input type="text" class="formInput" placeholder="Your Name" id="first_name" maxlength="50" size="20" />
<input type="text" class="formInput" placeholder="Email Address" id="email" maxlength="80" size="20" /> 
<textarea class="formInput" placeholder="Your Message" name="comments" id="comments" maxlength="1400" cols="20" rows="6"></textarea>
<input type="submit" id="SubmitContactForm" class="myButton" value="Submit" />
</form>

我的PHP:

echo $_POST['comments'];

无论我在textarea中写什么,都会产生undefined。我在这里搜索了一些解决方案并找到了一些东西,比如添加“name”和“id”并使它们不同,添加htmlspecialchars($_POST['comments'])等等,所有这些解决方案都不起作用。我会做一个说明并说我可以毫无问题地得到其他字段值,只是这个textarea。

任何想法可能是什么问题?

8 个答案:

答案 0 :(得分:1)

您尚未为textarea定义name-attribute。 添加:name="comments"到它:

<textarea class="formInput" name="comments" placeholder="Your Message" id="comments" maxlength="1400" cols="20" rows="6"></textarea>

如果仍未显示,请确保使用method="post"

发送表单

答案 1 :(得分:1)

您需要在textarea中使用name属性 名称= “评论”

<textarea class="formInput" placeholder="Your Message" id="comments" name="comments" maxlength="1400" cols="20" rows="6"></textarea>

答案 2 :(得分:0)

您忘记添加name属性。你的HTML应该是这样的

<textarea name="comments" class="formInput" placeholder="Your Message" id="comments" maxlength="1400" cols="20" rows="6"></textarea>

答案 3 :(得分:0)

<textarea class="formInput" placeholder="Your Message" id="comments" maxlength="1400" cols="20" rows="6" name="yourtextarea"></textarea>

答案 4 :(得分:0)

尝试将此添加到接收表单帖子的脚本中:

print "POST: " . print_r($_POST, true) . "\n"
   . "GET: " . print_r($_GET, true) . "\n";

如果“评论”出现在“GET”下,那么你还没有设置表格的方法=帖子

答案 5 :(得分:0)

首先将它定义为$comment=$_POST['comments'];,然后你可以做你想做的事, 注意:不要像$_POST['comments'];那样直接使用它,因为在某些情况下它会抛出一些错误/通知等。

答案 6 :(得分:0)

您可以尝试指定textarea的表单属性。在此,您可以设置表单的ID。额外的好处是,这允许您将textarea放在表单之外。 资料来源:http://www.w3schools.com/tags/tag_textarea.asp

答案 7 :(得分:-1)

删除部分textarea

<textarea name="Address" rows="3" class="input-text full-width" placeholder="Your Address" ></textarea>

<textarea name="Address" rows="3" class="full-width" placeholder="Your Address" ></textarea>

这取决于您的模板(已购买的模板)。 开发包括一些JavaScript以从UI上的正确对象获取价值 但对于像input-text这样的元素,只需找到$('input[type=text]')