0

通常在创建动态填充的下拉列表时,我会使用如下简单的 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 示例的最佳方法,其中 javascript不碍事。我试图研究这是否可以通过 AJAX 轻松完成,但无法找到任何我正在尝试做的事情的例子。

<script type="text/javascript">
var count = 0;
$(function(){
    $('p#add_field').click(function(){
        count += 1;
        $('#container').append(
                '<h4>Link #' + count + '</h4>&nbsp' 
                +'<select id="field_' + count + '" name="fields[]">' + '<option>Select a Course</option>'+'</select>');

    });
});
</script>

非常感谢您提供有关执行此操作的最佳方法的任何建议。

4

1 回答 1

0

更新 - 我最终设法回答了我自己的问题 - 按照下面的代码解决方案。

<script type="text/javascript">
var count = 0;
$(function(){
    $('p#add_field').click(function(){
        count += 1;
        $('#container2').append(
                '<strong>Golf Course ' + count + '</strong>&nbsp&nbsp&nbsp' 
                +'<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>
于 2013-02-16T14:24:32.580 回答