通常在创建动态填充的下拉列表时,我会使用如下的简单foreach循环来获取数据:
<select name="region" id="region" tabindex="1">
<option value="">Select a Course</option>
<?php foreach ( $courses as $course ) : ?>
<option value="<?php echo $course->coursename; ?>"><?php echo $course->coursename; ?></option>
<?php endforeach; ?>
</select>
*where $courses = select("SELECT * FROM courses");
等等
我不确定的可能是在javascript函数中的当前形式中使用它,例如我在某些表单上使用的下面的那个,以根据用户的要求附加额外的输入字段。例如,这适用于文本输入(如下所示,如果我手动输入每个输入选项,我可以使用它)但我不能确定在上面重新创建上面的PHP / mySQL示例的最佳方法不会妨碍。我试着研究一下这是否可以轻松地用AJAX完成,但是我找不到任何我想要做的例子。
<script type="text/javascript">
var count = 0;
$(function(){
$('p#add_field').click(function(){
count += 1;
$('#container').append(
'<h4>Link #' + count + '</h4> '
+'<select id="field_' + count + '" name="fields[]">' + '<option>Select a Course</option>'+'</select>');
});
});
</script>
非常感谢有关最佳方法的任何建议。
答案 0 :(得分:0)
更新 - 我最终设法回答了我自己的问题 - 根据以下代码解决问题。
<script type="text/javascript">
var count = 0;
$(function(){
$('p#add_field').click(function(){
count += 1;
$('#container2').append(
'<strong>Golf Course ' + count + '</strong>   '
+'<select id="field_' + count + '" name="fields[]">' + "<?php foreach ( $courses as $course ) { $name = $course->coursename; ?>"+"<?php echo '<option value=\''.htmlspecialchars($name).'\'>'.$name.'</option>'; ?>"+"<?php } ?>"+'</select><br />')
});
});
</script>