我用谷歌搜索了这个,只能找到有关使用 AS3 执行此操作的信息 - 我正在使用 PHP、jQuery 和 HTML。使用这些技术完全可行吗?如果可以……怎么做?
问问题
5582 次
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 回答