0

我用谷歌搜索了这个,只能找到有关使用 AS3 执行此操作的信息 - 我正在使用 PHP、jQuery 和 HTML。使用这些技术完全可行吗?如果可以……怎么做?

4

3 回答 3

3

假设您有以下 XML 文件 ( songs.xml)

<songs>
    <song>
        <name>I left my heart on Europa</name>
        <id>1</id>
    </song>
    <song>
        <name>Oh Ganymede</name>
        <id>2</id>
    </song>
    <song>
        <name>Kallichore</name>
        <id>3</id>
    </song>
</songs>

使用以下 PHP 代码,您可以仅使用 XML 文件中的数据生成 JSON(我们将其命名xml.php):

<?php

// load the XML file
$songs   = simplexml_load_file('songs.xml');

// get all song elements as an array
$options = iterator_to_array($songs->song, false);

// output json
echo json_encode($options);

在线演示

现在你只需要用 jQuery 做一个 ajax 请求:

$.getJSON("xml.php",function(j){
       var $option = $("#option");
          $option.empty();
          $.each(j, function () {
            $option.append($('<option></option>').attr("value", this.id).text(this.name));
          });   
});

填充这样的 html 代码:

<select name="x" id="option"></select>

jquery 未经测试,但如果您已经使用它,您可以修复任何错误:)

于 2013-02-12T12:00:44.697 回答
0

我不明白为什么不呢?您想用 XML 中的元素填充 Dropbox?通过下拉框,您可能意味着选择选项 HTML 元素。PHP 中有一堆 XML 解析器,比如SimpleXML,当您获取元素时,只需在 php 中循环并设置选项值。

纯 PHP 解决方案(与 Sacx 相同的 XML):

<?php
$songs = simplexml_load_file('songs.xml');

echo "<select id='SELsongs'>";

foreach($songs as $song)
{
echo "<option value='".$song->id."'>".$song->name."</option>";
}
echo "</select>";

?>
于 2013-02-12T11:51:25.353 回答
0

您必须导入 xml 并对其进行解析,这将为您提供一个可以循环的对象或多维数组,从而为下拉菜单创建元素。

于 2013-02-12T11:55:55.423 回答