2

私はphpとjavascriptを使用して、ワードプレスサイト用に動的に入力されるオートコンプリート検索エンジンを作成しています.

例: ユーザーが「Nike Shoes」を検索したいので、検索エンジンに「Nike Shoes」と入力すると、最初の 3 文字を入力すると、Nike Shoes が候補として表示されます。

Nike という単語しか候補として表示されないという問題があります。これは、検索エンジンに入力するすべての用語で発生します。文字列の最初の単語のみが表示されます。単語間のスペースに関係していると確信していますが、修正方法についてはよくわかりません。

オートコンプリートを動的に設定している私のコードは次のとおりです。

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 に答える