【发布时间】:2018-10-28 16:45:44
【问题描述】:
我有这个完美运行的代码。下拉字段包含选项。但是当我尝试使用“添加更多”按钮创建新行时,下拉菜单不起作用。请检查输出。
<select name="name[]"/>
<?php
echo "<option SELECTED DISABLED>SELECT CUSTOMER</option>";
while($result = mysqli_fetch_array($query1)){
echo "<option value='$result[description]'>" . $result['description'] . "</option>";
}
?>
</select>/td>
<td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td>
使用这样的脚本:
$(document).ready(function(){
var i=1;
$('#add').click(function(){
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><select name="name[]"/><?php echo "<option SELECTED DISABLED>SELECT CUSTOMER</option>"; while($result = mysqli_fetch_array($query1)){ echo "<option value='$result[description]'>" . $result['description'] . "</option>";}?></select></td> <td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
});
但#add 不会创建新的输入表单。我相信#dynamic_field 脚本有问题,我找不到它。谢谢你
【问题讨论】:
-
欢迎来到 StackOverflow。现在问题是,PHP 是一种服务器端语言,因此不能直接在浏览器中解析。除非您通过 Ajax 从已处理的 php 脚本中动态获取结果,否则您的脚本 sn-p 将无法工作
-
您使用的是自动关闭的
<select />,您应该使用<select name="name[]">(没有/)。那么你的<option>s 实际上将在 inside<select>. -
@rickdenhaan 我删除了 /,但选项为空
-
你是否在两个循环中重复使用
$query1(初始选择和添加额外选择的javascript函数)?如果是这样,您需要先使用mysqli_data_seek($query1, 0);在第二个循环之前重置它。 (见stackoverflow.com/a/41197555/1941241) -
是的,我愿意。很抱歉问这个问题,但我该把线放在哪里?