我正在尝试对我的数据库中的元素进行自动完成(在SQL Server上)。
这是我的PHP请求:
public function getNomProduitsAutocomplete() {
$q = ' SELECT NomProduit
FROM Produit
WHERE NomProduit LIKE \'a%\' OR NomProduit LIKE \'b%\'
ORDER BY NomProduit';
$qResults = $this->fetchAll($q);
$numItems = count($qResults);
$i = 0;
//var_dump($numItems);
$result = '[ ';
foreach($qResults as $res){
if(++$i === $numItems) {
$result .= '"' .$res['NomProduit'] . '"' ;
}
else {
$result .= '"' .$res['NomProduit'] . '", ';
}
}
$result .= ' ]';
return $result;
}
这里的js自动完成:
$(function () {
<?php
$p = new Produit();
$produits = $p->getNomProduitsAutocomplete();
//var_dump($produits);
?>
var availableTags2 = <?php echo ($produits); ?>;
$( "#tags" ).autocomplete({
source: availableTags2
});
});
最后是自动完成的输入:
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</div>
所有这一切都运行良好,但只有当我拥有时,数组中的元素少于1 000个。
它实际上可以使用700个元素(“你可以看到NOMProduit LIKE \'a%\'或NomProduit LIKE \'b%\'”,并且我希望得到所有元素(+/- 4 800)元素)如果可能,不仅700 ... 如果你有任何想法...... :) 感谢。
答案 0 :(得分:0)
为什么不在 getNomProduitsAutocomplete 函数中使用josn_encode
函数?
您是在PHP中手动创建javascript数组,而是收集数组中$res['NomProduit']
所有$js_array
,然后使用return json_encode($js_array)