JS -构造一个数组- SyntaxError: missing] after element list



我正试图使自动完成从我的数据库(这是在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>

所有这些都工作得很好,但只有当我在数组中拥有少于1000个元素时,似乎。

它实际上适用于700个元素(如您所见,"WHERE nomproducit LIKE 'a%'或nomproducit LIKE 'b%'"),如果可能的话,我想获得所有元素(+/- 4800个元素),而不仅仅是700……如果你有什么想法…:)谢谢。

为什么在 getnomproducitsautocomplete 函数中不使用josn_encode函数?

你是在PHP中手动创建javascript数组,而不是收集所有的$res['NomProduit']在一个数组说$js_array,然后使用return json_encode($js_array)

相关内容

最新更新