动态生成<选择>未显示已排序列表中的第一个项目
Dynamically generated <select> is not showing the first item in ordered list
我遇到了一个使用JavaScript动态生成字段的问题。
我有这个代码:
$goods="SELECT * FROM goods ORDER BY name";
$options = "";
$vys = mysqli_query($db, $goods);
while ($arr= mysqli_fetch_assoc($vys)) {
$options .= "<option value='".$arr['id_good']."'>".$arr['name']."</option>";
}
echo "
<script type='"text/javascript'">
function addInput(divName){
var newdiv = document.createElement('div');
newdiv.innerHTML = '"<select name=idg[]><?php echo $options; ?></select> '";
document.getElementById(divName).appendChild(newdiv);
}
</script>
<form method='post'>
<fieldset>
<div id='dynamicInput'><div>
<select name=idg[]>
$options
</select><br />
</div></div>
<input type='button' value='Add another select' onClick='"addInput('dynamicInput'); '">
</fieldset>
</form>
第一次选择是可以的,但每隔一次(生成)显示的选项列表中没有第一项。我不知道为什么,但每次我单击"添加另一个选择"时,它都会为我生成带有选项的新选择,但第一个项目不见了(显示的第一个项目是"排序列表中的第二个项目")。
当生成新的选择时,排序列表中的第一个项目没有显示,请问错误在哪里?
您正试图在echo
语句中使用<?php ?>
标记。它们在字符串上下文中没有特殊意义——这不是必需的,而且会弄乱HTML标记。
newdiv.innerHTML = '"<select name=idg[]><?php echo $options; ?></select> '";
应更改为:
newdiv.innerHTML = '"<select name=idg[]>$options</select> '";
修改后的代码看起来像:
<script type='"text/javascript'">
function addInput(divName){
var newdiv = document.createElement('div');
newdiv.innerHTML = '"<select name=idg[]>$options</select> '";
document.getElementById(divName).appendChild(newdiv);
}
</script>
使用时正确答案是错误的
newdiv.innerHTML = '"<select name=idg[]><?php echo $options; ?></select> '";
相反,正确的代码:
newdiv.innerHTML = '"<select name=idg[]>$options</select> '";
相关文章:
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- jQuery UI可排序-多连接列表拖动
- 如何在javascript中通过rtl字母表对列表进行排序和分组
- 如何在Javascript中创建排序、拖放多级列表
- 使用选项组对下拉列表进行排序
- JQuery根据连字符前的首字母对列表进行排序
- 可排序和可丢弃的淘汰列表
- 在Javascript中,当使用array.prush方法向列表中添加项目时,如何对其进行排序
- 使用JS或新查询对列表进行排序
- 对Soundcloud自定义播放器播放列表的顺序进行排序
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- 尝试将长列表排序为单独的列
- 不使用排序数组的动态列表排序
- 使用角度 js 按顺序列表排序
- 在JavaScript和MySQL中存储列表排序顺序的替代方法
- 如何用Vue.js动画化列表排序
- 按字母顺序对列表排序,末尾为字符
- IE7,jQuery-1.6.2:列表项向下移动到包含元素的下面(多列表排序)
- 按元素的值对列表排序