Php Textarea值未出现在$\u POST对象上

Php Textarea值未出现在$\u POST对象上,php,forms,post,textarea,submit,Php,Forms,Post,Textarea,Submit,伙计们,这件事让我抓狂 我有一个基本上包含了一些由用户填写的表单。然后用户可以下载人类可读格式(pdf)或机器可读格式(xml)的信息,但我在提交文本框时遇到了一个小问题 我有一些,例如在描述部分,但是当我访问$\u POST['Desc\u Desc\u Desc']值时,它是空的,即使我可以在文本区域中看到内容。奇怪的是,当我使用firebug检查元素时,它会显示元素,就好像它没有内容一样 有人知道是什么导致了这种奇怪的行为吗?你在你的问题$\u POST['Desc_Desc_Desc']

伙计们,这件事让我抓狂

我有一个基本上包含了一些由用户填写的表单。然后用户可以下载人类可读格式(pdf)或机器可读格式(xml)的信息,但我在提交文本框时遇到了一个小问题

我有一些,例如在描述部分,但是当我访问$\u POST['Desc\u Desc\u Desc']值时,它是空的,即使我可以在文本区域中看到内容。奇怪的是,当我使用firebug检查元素时,它会显示元素,就好像它没有内容一样


有人知道是什么导致了这种奇怪的行为吗?

你在你的问题
$\u POST['Desc_Desc_Desc']
中说,尽管在代码中我看到一个名为
Dep_Desc
和id
Dep_Desc
的文本区域。然后您应该编写
$\u POST['Dep_desc']
,即
名称,而不是
id

而且,
textarea
s没有
value
属性,因此在html中,您应该在开始标记和结束标记之间写入初始内容

HTML

<textarea name="Dep_desc" id="Dep_Desc_Desc">Initial content</textarea>
注释

nl2br
:尊重html输出中的新行,将
\n
符号替换为


htmlspecialchars
:防止可能的攻击。

我使用firebug来分析

document.getElementById('descriptionForm').submit()
表单数据正在正确发送

内容类型:application/x-www-form-Url编码内容长度:113

Desc\u Desc\u name=SO&Desc\u Desc\u keywords=overflow&Desc\u Desc\u concept=http%3A%2F%2Fso.com&Desc\u Desc\u Desc=Stack+overflow

  • 表单操作参数当前设置为“submit.action”,这将生成404
  • 表单按钮在表单标记外部定义
  • 表单按钮不会激活表单上的提交
    底线:表单未提交给预期收件人。

    服务级别\u库.buttons.prepForSubmit
    中,文本区域通过DOM方法与表单的其余部分一起克隆。这将复制HTML元素属性,但不复制DOM属性。(有时DOM元素节点属性有一个属性,因此更新属性会影响属性,这可能会使DOM属性看起来像是在复制。)

    虽然有,但没有相应的
    属性,因此
    属性不公开属性。因此,当您克隆节点时,(empty)
    value
    属性将被复制,而元素的属性(可通过
    value
    属性访问)将被保留

    要修复脚本,请执行以下操作之一:

  • 复制克隆后的值
  • 在克隆之前,通过指定属性或设置节点的文本内容来设置textarea的。这是因为克隆节点的当前值将设置为其初始值,而textarea的深度副本将复制其文本内容(初始值的来源)
  • 在克隆之前以编程方式用输入替换textarea(尽管这比其他选项更复杂)

  • 我有一个类似的问题,但后来我发现在底部的某个地方,我对另一个空元素重复使用了相同的名称。这抹去了我在var_dump和print_r中需要的元素。这需要一段时间。

    只需使用var\u dump($\u POST)进行调试,并确保表单具有属性method=“POST”和操作集。AFAIK firebug不显示输入字段的内容。您正在访问id还是名称?因为我看到它们是不同的,所以表单有method=“post”属性,动作由javascript动态设置。我使用name属性访问该字段,下面是var_dump结果:数组(4){[“Desc_Desc_name”]=>string(3)“SAD”[“Desc_Desc_关键字”]=>string(3)“SAD”[“Desc_Desc_concept”]=>string(14)”[“Desc_Desc_Desc”]=>string(0)”}因此,textarea字段(Desc_Desc_Desc_Desc)有一个条目但出于某些原因,它是空的try
    value放在这里(不使用value=”,我的意思是)
    谢谢@DamienPirsy我用了你的答案,如果是在答案部分,我真的会投票…谢谢页面中有多个文本区域,描述是用于小节描述的,您提到的Dep_desc是关于可靠性的小节,所以我们讨论的是不同的文本区域。我已经删除了value属性,不知道为什么一开始就有它,我在POST对象中使用name属性访问它,结果仍然是一样的。。停!我想你可能是对的!我确实将隐藏在后台div中的所有表单克隆到一个新表单以提交。如果克隆未复制解释文本区域为空的值。
    document.getElementById('descriptionForm').submit()