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>
助けてくれてありがとう。