我有以下HTML代码
<input type = "textarea" id="sentence1"> Here is my sentence </textarea>
<input type="hidden" name="sentence2" value="This is another sentence">
PHP:
$_POST['sentence1'] //shows nothing
$_POST['sentence2'] // works fine
我想获得sentence1的值但是我有这样一个分散的代码,对于textarea我不能将“id”更改为“name”,否则我将不得不在不同的文件中进行大量更改。
我必须将这两个句子都转移到PHP,所以请帮助我,我该怎么做?
答案 0 :(得分:5)
没有输入type="textarea"
。您无法将id
属性用于name
属性。这不是它将如何传输,也没有办法从纯HTML中改变它。表单<input>
元素与name
和value
属性一起传输。
答案 1 :(得分:3)
你的代码错了。你应该开始使用带有HTML验证的浏览器,它会抓住它。
<textarea name="sentence1" id="sentence1"> Here is my sentence </textarea>
<input type="hidden" name="sentence2" value="This is another sentence" />
答案 2 :(得分:3)
更改
<input type = "textarea" id="sentence1"> Here is my sentence </textarea>
到
<textarea id="sentence1" name="sentence1"> Here is my sentence </textarea>
并且您的PHP可以使用。
答案 3 :(得分:0)
你不能(至少不使用纯HTML)。关于表单处理和处理状态的W3C建议
控件的“控件名称”由下式给出 它的名称属性。的范围 一个控件的名称属性 FORM元素是FORM元素。
和
表单数据集是一系列的 控制名称 /当前值对 由成功的控制构建
请参阅here。
您可以使用Javascript动态地将name
- 属性添加到所有表单元素,而不使用相应的属性。
答案 4 :(得分:0)
但是我有这样一个分散的代码,对于textarea我不能将“id”改为“name”,否则我将不得不在不同的文件中进行很多更改。 那可能就是你应该开始的地方。 (注意:input / textarea元素可以同时具有name和id属性。)
答案 5 :(得分:0)
我假设你已经纠正了<input type="textarea">
错误。如果我正确理解您的需求,您知道该表单只传递name
属性的值,而不是id
,但您无法轻易更改。
我的建议是添加一个脚本,将name
属性的值更改为id
的值,或者复制整个属性,使其在name
下都可用和id
:
<script>
var inputs = document.getElementsByTagName('input');
for (var i=0; i<inputs.length; i++)
inputs[i].parentNode.appendChild(inputs[i].cloneNode(false));
</script>
并在页面末尾添加它。为textareas做同样的事。