Получение автозаполнения jQuery для работы с исходным кодом PHP
У меня есть поле автозаполнения 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
});
Он работал правильно, используя массив "теги" в качестве образца входных данных.
Теперь мне нужно иметь набор результатов запроса MySQL вместо этого образца массива. Что я сделал, так это изменил вызов функции на следующий:
$("input#name").autocomplete({
position: {
offset: "0 -10px",
},
source: "http://absolutepathtofile/autosuggest.php"
});
Я использовал абсолютный путь, чтобы быть уверенным, что я не сделал какую-то глупую ошибку там, потому что я не могу получить возврат файла в автозаполнение. Я был в документации jQuery и нашел несколько примеров использования PHP / MySQL для возврата результатов для автозаполнения, но я не могу заставить его работать.
Это то, что я попробовал в самовнушении.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 (использовался ранее).
2 ответа:
$.ajax({ url:"http://absolutepathtofile/autosuggest.php", type:"post", success:function(html){ $("#user_phone").autocomplete( {position: {offset: "0 -10px"}, source: html }); } });
- Работа велика для меня и проверена
Я написал этот пользовательский скрипт, чтобы заставить выпадающие списки работать в нашем коде, когда у нас не было json_encode, надеюсь, это поможет вам что-то придумать.
Функция 'get_xref_values ()' просто строит массив из предоставленных параметров, а GET - 'term' - это текст в текстовом поле автозаполнения, он добавляется автоматически элементом управления.
Код "click" просто делает выпадающее меню автозаполнения автоматически, когда пользователь нажимает на него, а также когда они тип.
Вот 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;