每当用户点击按钮添加更多内容时,我都会动态添加文本框,这样可以正常工作。但是,在PHP中,当我通过$ _POST ['技能']获取提交的字段值时,我只收到第一个文本框值,而不是动态添加的值。我几乎肯定我在javascript中添加文本框的方式有问题。 我使用以下方法添加文本框字段:
function addTextBoxField()
{
var input = document.createElement('input');
input.type = "text";
input.name = "skills[]";
input.size = "30";
var container = document.getElementById("skillfield");
container.appendChild(input);
}
我对文本框的HTML代码是:
...
<td>
<div id="skillfield">
<input type="text" size="30" name="skills[]" />
</div>
</td>
<td><a href="javascript:void(0);" class="addLink hidden" onclick="addTextBoxField();"><div class="button">+ Add</div></a></td>
以下是php代码:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$allskills = $_POST['skills'];
$size = count($_POST['skills']);
print_r($allskills);
}
输出如下,即使我输入了三个值
数组([0] =&gt; java)
答案 0 :(得分:0)
您的字段名称为skills
而不是skill
。因此,$_POST['skills']
。$_POST['skills']
在这种情况下是一个数组。因此,使用var_dump($_POST['skills']);
进行访问尝试,您将看到所有值。
答案 1 :(得分:0)
至于$ _POST ['技能']是一个数组,试试这个..
$skill = $_POST['skills'];
foreach($skill as $value){
echo $value;
}
答案 2 :(得分:0)
你的意思是$ _POST ['技能 s ']的值
我不认为你的javascript有问题,你错误的是如何阅读你的PHP中的帖子数据。在这种情况下,帖子数据将是一个数组,因此您可以像这样访问它$_POST['skills'][0] //value of 1st input
$_POST['skills'][1] //value of 2nd input
答案 3 :(得分:0)
$_POST['skills']
是一个数组,所以使用print_r()来查看数组。您可以按如下方式使用
<script type="text/javascript">
function addTextBoxField()
{
var input = document.createElement('input');
input.type = "text";
input.name = "skills[]";
input.size = "30";
var container = document.getElementById("skillfield");
container.appendChild(input);
}
</script>
<form method ="post">
<td>
<div id="skillfield">
<input type="text" size="30" name="skills[]" />
</div>
</td>
<td>
<input type="submit" name="submit" value="Submit"/>
</td>
</form>
<td><a href="javascript:void(0);" class="addLink hidden" onclick="addTextBoxField();"><div class="button">+ Add</div></a></td>
<?php
if(isset($_POST['submit']) && $_POST['submit'] == 'Submit'){
echo "<pre>";
print_r($_POST['skills']);
echo "</pre>";
}
?>