jQuery 自动完成不会加载超过 250 MySQL 条记录?
jQuery Autocomplete doesn't load more than 250 MySQL records?
我有一种产品形式,其中产品名称字段具有自动完成功能,但它加载的记录不超过 250 条。如果我将限制设置为 300 或 500,则它不起作用。以下是我的代码,谁能告诉我我的脚本是否有任何问题。
jQuery.noConflict();
jQuery(function() {
var availableTags = [
<?php
$query_product = "SELECT DISTINCT prod_name FROM tbl_product LIMIT 250";
$result_product = mysql_query($query_product);
while($row_product = mysql_fetch_array($result_product))
{
$prod_name = $row_product['prod_name'];
?>
"<?php echo $prod_name; ?>",
<?php
}
?>
];
jQuery('input[name="item[]"]').autocomplete({
source: availableTags
});
});
<input type="text" placeholder="Item" id="item" name="item[]">
"SELECT DISTINCT prod_name FROM tbl_product LIMIT 250";
尝试删除 LIMIT 250 部分?
您的 $row_product['prod_name']
中很可能有一个单引号或反斜杠,因此您的数据库数据在提供给 Javascript 之前需要清理。
我认为您的代码需要如下所示:
var availableTags = [
<?php
$query_product = "SELECT DISTINCT prod_name FROM tbl_product LIMIT 250";
$result_product = mysql_query($query_product);
while($row_product = mysql_fetch_array($result_product))
{
echo "'".str_replace("'", "\'", str_replace('\', '\\', $row_product['prod_name']))."',";
}
?>
];
这只是一个猜测,因为没有足够的信息可以继续,但这看起来很不对:
var availableTags = [
<?php
...
?>
"<?php echo $prod_name; ?>",
<?php
...
?>
];
看起来您正在尝试构建 json / javascript 数组,但您输出的可能不是您需要的,数据中的任何特殊字符都会破坏 json.所以我的猜测是在产品 250 左右有一个产品打破了你的结果。
你应该做的是构建一个数组并使用 json_encode()
将其直接发送到 javascript:
var availableTags = <?php echo json_encode($your_array); ?>;
我有一种产品形式,其中产品名称字段具有自动完成功能,但它加载的记录不超过 250 条。如果我将限制设置为 300 或 500,则它不起作用。以下是我的代码,谁能告诉我我的脚本是否有任何问题。
jQuery.noConflict();
jQuery(function() {
var availableTags = [
<?php
$query_product = "SELECT DISTINCT prod_name FROM tbl_product LIMIT 250";
$result_product = mysql_query($query_product);
while($row_product = mysql_fetch_array($result_product))
{
$prod_name = $row_product['prod_name'];
?>
"<?php echo $prod_name; ?>",
<?php
}
?>
];
jQuery('input[name="item[]"]').autocomplete({
source: availableTags
});
});
<input type="text" placeholder="Item" id="item" name="item[]">
"SELECT DISTINCT prod_name FROM tbl_product LIMIT 250";
尝试删除 LIMIT 250 部分?
您的 $row_product['prod_name']
中很可能有一个单引号或反斜杠,因此您的数据库数据在提供给 Javascript 之前需要清理。
我认为您的代码需要如下所示:
var availableTags = [
<?php
$query_product = "SELECT DISTINCT prod_name FROM tbl_product LIMIT 250";
$result_product = mysql_query($query_product);
while($row_product = mysql_fetch_array($result_product))
{
echo "'".str_replace("'", "\'", str_replace('\', '\\', $row_product['prod_name']))."',";
}
?>
];
这只是一个猜测,因为没有足够的信息可以继续,但这看起来很不对:
var availableTags = [
<?php
...
?>
"<?php echo $prod_name; ?>",
<?php
...
?>
];
看起来您正在尝试构建 json / javascript 数组,但您输出的可能不是您需要的,数据中的任何特殊字符都会破坏 json.所以我的猜测是在产品 250 左右有一个产品打破了你的结果。
你应该做的是构建一个数组并使用 json_encode()
将其直接发送到 javascript:
var availableTags = <?php echo json_encode($your_array); ?>;