使用javascript选择表单

时间:2013-07-15 14:05:39

标签: php javascript html

我想获得具有可变数量字段的选择表单。为了实现这一点,我首先连接到db并将数据从php转换为javascript。然后我得到数组(wynik)的值,但当我尝试打印它时,我得到空的选择形式和旁边显示的所有值。有我的javascript函数:

<script language="javascript">
function addInput() {
document.getElementById('text').innerHTML += "<select name='add' /><br />";
for (i=0;i<wynik.length;i++)
{
document.getElementById('text').innerHTML += "<option value=" + "wynik[i]" + " />" + wynik[i] + "</option />";
}
document.getElementById('text').innerHTML += "</select />";
}
</script>

和HTML代码:

<form name="add" action="add_form.php" method="post">
<div id="text">
</div>
<br>
<input type="submit" value="Submit" />
</form>
<input type="button" onclick="addInput()" name="add" value="Add value" />

请帮我把它变成表格。

3 个答案:

答案 0 :(得分:2)

每次向其编写HTML时,浏览器都会尝试修复DOM,因此您无法将只是的开始标记写入innerHTML

在字符串中构建所有HTML,然后一次性插入。

更好的是,请改用createElementappendChild和朋友。

答案 1 :(得分:0)

也许您需要在<br />之后删除<select name='add' />。此外</select />最终不需要/(它在开头就有了) - </select>

答案 2 :(得分:-1)

您可以尝试使用ajax的另一种方法:

<!-- Script -->
<script type="text/javascript">
$(function(){
    $("#add").on('click', function(){
       $.ajax({
            url     : 'ajax.php',
            type    : 'POST',
            success : function(resp){
                $("#backend").html(resp);
            },
            error   : function(resp){

            }
       }); 
    });
});
</script>
<!-- HTML -->
<div id="text"><select id="backend" name=""></select></div>
<input type="button" id="add" value="Add value" />

<!-- Backend ajax.php -->
<?php
#your query here to fetch $wynik
$str    = "";
foreach($wynik as $value){
    $str    .= '<option value="'.$value.'">'.$value.'</option>';
}
return $str;