2

我正在使用 php 和 javascript 为我的 wordpress 网站创建一个动态填充的自动完成搜索引擎。

示例:用户想要搜索“耐克鞋”,因此他们在搜索引擎中输入耐克鞋,他们应该在输入前 3 个字母后看到耐克鞋作为建议。

我遇到了一个问题,只有耐克这个词作为建议出现。您在搜索引擎中输入的任何字词都会发生这种情况。只会显示字符串的第一个单词。我确信这与单词之间的空格有关,但不太确定如何修复它。

这是我动态填充自动完成的代码:

var availableTags = '<?php $result = mysql_query("select * from state"); 
                    $row = mysql_fetch_array($result); 
                    echo $row['name']; ?>'.split(" ");
                    $( "#title" ).autocomplete({
                    source: availableTags,
                    minLength: 3,
                    position: { my : "left top", at: "left top" },
                    appendTo: "#search-container"
                    });
                    });

我从这个网站创建了这段代码:http ://www.tizag.com/mysqlTutorial/mysqlquery.php

如果有人可以帮助我,我会非常感激。

谢谢,

史蒂夫

4

1 回答 1

1

我正在将此功能用于自动建议列表。您可以稍作修改使用它

function get_autosuggest_list($str=''){

        $q     = strtolower($str);
        $entry = array();   
        $i=0;
        if(!empty($q))
        {
            $entry[$i] = "A.fieldname like '".$q ."%'" ;
            $i++;
        }

        $sqlentry = "";
        $j=0;
        foreach($entry as $data)
        {

            if($j==0)
            $sqlentry  = " where ".$data;
            else
            $sqlentry .= " and ".$data;

            $j++;
        }
        $sql    = "SELECT DISTINCT field_name FROM `table` A ".$sqlentry." ";
        $query  = mysql_query($sql);
        $res    = mysql_fetch_array($query);

        foreach($res as $row)
        {
            $items = $row->fieldname;
            echo "$items\n";
        }

    }

用法:

get_autosuggest_list(string);
于 2012-09-19T05:38:08.070 回答