在javascript中动态添加文本框

时间:2015-04-22 05:25:09

标签: javascript php html

每当用户点击按钮添加更多内容时,我都会动态添加文本框,这样可以正常工作。但是,在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)

4 个答案:

答案 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>";
    }
?>