3

次のコードを含む jQuery オートコンプリート フィールドがあります。

 var tags = ["a", "ab", "abc", "abcd", "adbce", "abcdef", "abcdefg", "abcdefgh", "abcdefghi", "abcdefghij", "abcdefghijk", "abcdefghijkl", "abcdefghijklm", "abcdefghijklmn", "abcdefghijklmno", "abcdefghijklmnop", "abcdefghijklmnopq", "abcdefghijklmnopqr", "abcdefghijklmnopqrs", "abcdefghijklmnopqrst", ];
      $("input#name").autocomplete({
        position: {
          offset: "0 -10px",
        },
        source: tags
      });

「tags」配列をサンプル入力データとして使用すると、正しく機能しました。

ここで、そのサンプル配列ではなく、一連の MySQL クエリ結果が必要です。私がしたことは、関数呼び出しをこれに変更することでした:

$("input#name").autocomplete({
        position: {
          offset: "0 -10px",
        },
        source: "http://absolutepathtofile/autosuggest.php"
      });

ファイルをオートコンプリートに戻すことができないため、絶対パスを使用して、ばかげた間違いを犯していないことを確認しました。jQuery のドキュメントにアクセスして、PHP/MySQL を使用してオートコンプリートの結果を返す例をいくつか見つけましたが、動作させることができません。

これは私が autosuggest.php で試したものです:

$term = $_REQUEST['term'];
$query = "SELECT * FROM merchants WHERE business_name LIKE '%$term%'";
$result = mysql_query($query);

$k=0;
while($row=mysql_fetch_array($result)){

    $aUsers[$k]=$row['business_name'];
    $k++;

}

echo json_encode($aUsers);

できるだけシンプルにしましたが、うまくいきませんでした。

次に、JSON がまったく送信されているかどうかをテストしたので、次のようにしました。

$array[0]="test";
$array[1]="test1";

echo json_encode($array);

そして、それは機能しません。この問題はどこにも見つかりません。何が間違っていますか? PHP のバージョンは 5.3.10 で、json_encode があります (以前は使用していました)。

4

2 に答える 2

1
$.ajax({
     url:"http://absolutepathtofile/autosuggest.php",
     type:"post",
     success:function(html){
         $("#user_phone").autocomplete(
            {position: {offset: "0 -10px"},
            source: html
         });
     }   
});
  • 私にとってはうまくいき、テストされました
于 2012-05-27T13:41:13.087 に答える
0

このカスタム スクリプトを作成して、json_encode が利用できない場合にコードでドロップ ダウンを機能させるようにしました。

「get_xref_values()」関数は、提供されたパラメーターから配列を構築するだけで、GET (「用語」) はオートコンプリート テキスト ボックス内のテキストであり、コントロールによって自動的に追加されます。

「クリック」コードは、ユーザーが入力したときだけでなく、クリックしたときにもオートコンプリート ドロップダウンを自動的に作成します。

ここにjqueryがあります:

$("#libraryEventAspectRatio" ).autocomplete({
    source: "/dropDowns/autoXref.php?category=" + "aspectratio",
    matchContains: true,
    minLength: 0
}).click(function(){
    $("#libraryEventAspectRatio" ).autocomplete('search', $(this).val());
});

ここにphpがあります:

//this page creates simple data for a drop down box to use (jquery's UI autocomplete)

$category       = get_input_get("category");
$description    = get_input_get("term");
$select_field   = get_input_get("selectField");
$select_value   = get_input_get("selectValue");

$order_by       = "description";

$xref_data      = get_xref_values($category, $order_by, $description, $select_field, $select_value);

$str = "[";

foreach ($xref_data as $row):
    $str .= '"' . $row['description'] . '",';
endforeach;

//chop off the last comma
if (count($xref_data)) {
    $str = substr($str,0,-1);
}

$str .= "]";

echo $str;
于 2012-04-29T09:56:45.837 に答える