Получение автозаполнения jQuery для работы с исходным кодом PHP

У меня есть поле автозаполнения JQuery с этим кодом:

<code> 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
      });
</code>

Он работал правильно, используя теги "apos;" массив в качестве образца входных данных.

Теперь мне нужно иметь набор результатов запроса MySQL вместо этого образца массива. Что я сделал, это изменил вызов функции на это:

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

Я использовал абсолютный путь, чтобы быть уверенным, что я не допустил какой-то глупой ошибки, потому что не могу вернуть файл в автозаполнение. Я посетил документацию по jQuery и нашел несколько примеров использования PHP / MySQL для возврата результатов автозаполнения, но я не могу заставить его работать.

Вот что я попробовал в autosuggest.php:

<code>$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);
</code>

Я сделал это как можно проще, но это не сработало.

Затем я проверил, отправляется ли JSON вообще, поэтому я сделал это:

<code>$array[0]="test";
$array[1]="test1";

echo json_encode($array);
</code>

И это не работает. Я нигде не могу найти эту проблему, что я делаю не так? Версия PHP 5.3.10 и имеет json_encode (использовал его раньше).

Ответы на вопрос(2)

$.ajax({
     url:"http://absolutepathtofile/autosuggest.php",
     type:"post",
     success:function(html){
         $("#user_phone").autocomplete(
            {position: {offset: "0 -10px"},
            source: html
         });
     }   
});
work greate for me and tested

Я написал этот нестандартный скрипт, чтобы в нашем коде работали выпадающие списки, когда у нас не было json_encode, надеюсь, он поможет вам что-то решить.

Функция "get_xref_values ()" функция просто строит массив из предоставленных параметров, а GET - «термин» - текст в текстовом поле автозаполнения, он добавляется автоматически элементом управления.

& Quot; нажмите & apos; Код просто делает автозаполнение выпадающим автоматически, когда пользователь щелкает по нему, а также когда они печатают.

Вот 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;

ВАШ ОТВЕТ НА ВОПРОС