0

这是我选择 ID 的 HTML 代码:

<select class="dropdown-toggle" id="combo"></select>

我有这个 HTML 文件,我需要使用位于名为 xml 的根文件夹中的 XML 文件填充选项。我在标题中导入了 JQuery。我已经尝试了很多例子,但我无法让它工作。XML 文件位于 /XML 文件夹中。

提前致谢!

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript">
  $(function(){
  $.ajax({
  url: '/xml',
  success: function(d){
    $.each(d.split(/[\r\n]+/),function(i,e){


      $('<option>',{ value: e }).text(e),'</option>'.appendTo('#combo');
       });
      }
  });
</script>

我试过这段代码,但它不工作......

4

1 回答 1

0

简短的回答:您必须使用一些服务器端代码来生成列表。


这是 PHP 中的一个示例:

header('Content-type: application/json');

$folder = opendir('path/to/xml');
$list = array();

while ( $file_name = readdir( $folder ) ) {
    // Only get the XML files
    if ( pathinfo($file_name, PATHINFO_EXTENSION) !== 'xml' ) continue;

    $list[] = pathinfo($file_name, PATHINFO_FILENAME);
}

closedir( $folder );

echo json_encode( $list );

或者,正如@charlietfl 在上面的评论中指出的那样,您可以使用glob

header('Content-type: application/json');

$list = array();

foreach(glob('path/to/xml/*.xml') as $file_name) {  
    $list[] = pathinfo($file_name, PATHINFO_FILENAME);
}

echo json_encode( $list );

一旦在服务器上设置了该脚本,就可以在 JavaScript 中循环遍历数组:

$.ajax({
    url: 'path/to/list_xml_files.php',
    success: function (data) {

        var $select = $('#combo');

        $.each(data, function(i, v) {
            $('<option>', {
                value: v,
                text: v
            }).appendTo( $select );
        });
    }
});

append您可以通过一次完成所有操作来进一步优化这一点,但这是另一天的讨论......

于 2013-01-20T03:35:08.787 回答