我有一个选择菜单,通过 Ajax 调用填充一个 php 脚本,该脚本从 XML 形式的表中返回产品列表。
产品表有大约 400 条记录,出于某种原因,选择菜单没有显示任何内容,而选择语句则返回全部。使用 Firebug 进行故障排除,我可以看到 php 代码成功地将所有 400 条记录正确返回到浏览器,但它没有显示。
当我将选择语句更改为“SELECT ProductID,ProductName FROM product WHERE ProductID < 74”时,它可以工作,显示前 73 个项目。认为这可能是由于第 74 项有问题,我将 where 子句更改为“> 74”,但这也没有返回任何内容。但是,“> 74 和 < 120”的 where 子句有效。
可能是什么原因?请在下面找到代码片段。
代码的javascript如下:
function populateProducts(xmlindata) {
var mySelect = $('#ili_product');
$(xmlindata).find("Product").each(function()
{
optionValue=$(this).find("id").text();
optionText = $(this).find("name").text();
mySelect.append($('<option></option>').val(optionValue).html(optionText));
});
}
php代码是:
<?php
include("dbconfig.inc.php");
header("Content-type: text/xml");
echo "<?xml version=\"1.0\" ?>\n";
echo "<products>\n";
$select = "SELECT ProductID,ProductName FROM product";
try {
foreach($dbh->query($select) as $row) {
echo "<Product>\n\t<id>".$row['ProductID']."</id>\n\t<name>".$row['ProductName']."</name>\n</Product>\n";
}
}
catch(PDOException $e) {
echo $e->getMessage();
die();
}
echo "</products>";
?>