получение автозаполнения JQuery для передачи элемента в другое поле при выборе - PullRequest
0 голосов
/ 09 августа 2010

Я работал над этим пару часов, и это должно сработать, но я что-то упустил!

В основном я использую автозаполнение jquery с источником json, с двумя значениями id и описанием. Описание должно отображаться в предложениях, и если элемент выбран и идентификатор передан в скрытое поле (поле в настоящее время не скрыто для целей тестирования)

вот мой код:

$(function() {
  $("#CurrentProv").autocomplete({
   source: "inc/provider_term.php",
   minLength: 3,
    formatItem: function(data, i, n, value) {   
        return  value.split("|")[1];
          } 
    });
      $("#CurrentProv").result(function(event, data, formatted) {
      if (data)
            $("input#fid").val(data[0]);
      });
});

// PHP валидный вывод json

$term = $_GET['term'];

$sql = "SELECT * FROM db.table WHERE PName LIKE '%$term%'";
$res = mysql_query($sql, $conn) or die(mysql_error());

while ($row = mysql_fetch_array($res)) {

$searchArray['value'] = $row['PID'].'|'.$row['PName'];
$search[] = $searchArray;

}

echo json_encode($search);

Я искал и делал различные варианты и все еще не работает !!! Мой мозг отключается !!!!!!!!

Ответы [ 2 ]

1 голос
/ 09 августа 2010

Сначала переключитесь на использование фактического пользовательского интерфейса jQuery автозаполнение .

Вам нужно разобраться, как форматировать ваши элементы на стороне сервера или в вашем обратном вызове JSON, потому что formatItems больше не поддерживается.Ознакомьтесь с этим руководством для получения справки.

Теперь, когда вы это сделали, вот как это будет выглядеть:

$(function() {
 $("#CurrentProv").autocomplete({
   source: "inc/provider_term.php", //or you can use a callback here
   minLength: 3,
   change: function(event, ui) {
      $("input#fid").val(ui.item.value);//or ui.item.desc perhaps
   }
});

});

0 голосов
/ 10 августа 2010

Работает подправленный PHP-код и JS, как предложил Райли:

$term = $_GET['term'];

$sql = "SELECT * FROM db.table WHERE PName LIKE '%$term%'";
$res = mysql_query($sql, $conn) or die(mysql_error());

while ($row = mysql_fetch_array($res)) {

$searchArray['value'] = $row['PID'];
$searchArray['id'] = $row['PName'];
$search[] = $searchArray;

}

echo json_encode($search);


$(function() {
 $("#CurrentProv").autocomplete({
   source: "inc/provider_term.php", //or you can use a callback here
   minLength: 3,
   change: function(event, ui) {
      $("input#fid").val(ui.item.id);//or ui.item.desc perhaps
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...