0

Ajax を使用して、combo_assembly という名前のコンボ ボックスにデータを追加しようとしています。

関数は次のとおりです。

function populate_combo_assembly(xmlindata) {
var xmldata = xmlindata.getElementsByTagName('Assemblies');
    if(xmldata.length <= 0) {
    alert("Data Unavailable");
        return;
    }
    window.document.getElementById('combo_assembly').options.length = 0;
    var firstOption = new Option('--Please select--', '', false, false);
    window.document.getElementById('combo_assembly').options.add(firstOption);
    for(var i =0; i <= xmldata.length; i++) {
        var typename = '';
        var x,y;
        x = xmlindata.getElementsByTagName('name')[i];
        y = x.childNodes[0];
        typename = y.nodeValue;
        var newOption = new Option(typename, typename, false, false);
        window.document.getElementById('combo_assembly').options.add(newOption);

    }

    window.document.getElementById('combo_assembly').disabled = false;  
}

そして、ファイルから値を取得..コードは次のとおりです。

<?php

include("database/dbconfig.inc.php");

header("Content-type: text/xml");
echo "<?xml version=\"1.0\" ?>\n";
echo "<Assemblies>\n";
$select = "SELECT * FROM assembly";
try {
    foreach($dbh->query($select) as $row) {
        echo "<Assembly>\n<name>".$row['name']."</name>\n<id>".$row['id']."</id>\n<category>".$row['category']."</category>\n</Assembly>\n";
    }
}
catch(PDOException $e) {
    echo $e->getMessage();
    die();
}
echo "</Assemblies>";
?>

問題は、この xml ファイルがデータベース テーブルからすべてのコンテンツを取得していることです。しかし、関数は xml コードから最初の 2 つの値のみを取得しています。xml ファイルの出力

<Assemblies>
<Assembly>
<name>total</name>
<id>A00000</id>
<category>Brake</category>
</Assembly>
<Assembly>
<name>asd</name>
<id>A00001</id>
<category>Brake</category>
</Assembly>
<Assembly>
<name>ga</name>
<id>ga</id>
<category>Suspension</category>
</Assembly>
<Assembly>
<name>65</name>
<id>r00</id>
<category>Brake</category>
</Assembly>
<Assembly>
<name>yty</name>
<id>tyt</id>
<category>Suspension</category>
</Assembly>
<Assembly>
<name>Gaurav</name>
<id>Z0012</id>
<category>Brake</category>
</Assembly>
</Assemblies>

助けてくれてありがとう。

4

1 に答える 1

0

あなたはxmldataを次のように取得しています

var xmldata = xmlindata.getElementsByTagName('Assemblies');

そんなはずないでしょ

var xmldata = xmlindata.getElementsByTagName('Assembly');

ラッパー要素には情報が含まれていないためです。

于 2013-03-14T12:08:33.497 に答える