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 に答える