使用PHP中的XML文件填充下拉框

时间:2013-02-12 11:39:07

标签: php jquery xml drop-down-menu

我用Google搜索了这个,只能找到有关使用AS3执行此操作的信息 - 我使用的是PHP,jQuery和HTML。这是否可行使用这些技术,如果是这样......怎么样?

3 个答案:

答案 0 :(得分: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代码,您可以generate JSON使用仅来自XML文件的数据(我们将其命名为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);

Online Demo

现在你只需要用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未经过测试,但如果您已经使用过它,则可以修复任何错误:)

答案 1 :(得分:0)

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

纯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>";

?>

答案 2 :(得分:0)

你必须导入xml并解析它,这将为你提供一个对象或多维数组,你可以遍历它,从而为下拉列表创建元素。