Обработка данных от jquery.tokeninput

Обсуждаются вопросы использования плагинов для jQuery, созданных сторонними разработчиками.

Модераторы: TRAHOMOTO, tuareg

Обработка данных от jquery.tokeninput

Сообщение nomen » 27 мар 2011, 22:05

Приветствую, господа.
Подскажите пожалуйста, каким образом можно обработать данные полученные от такого (http://loopj.com/jquery-tokeninput/) input'а?

Инициализировать и заставить работать так чтобы в самом инпуте формировались вводимые пользователем данные у меня получилось.
Код: выделить все
<script type="text/javascript" src="../scripts/jquery.tokeninput.js"></script>
<link rel="stylesheet" href="../scripts/token-input-facebook.css" type="text/css" />
<script type="text/javascript">
  $(document).ready(function() {
       $("#country").tokenInput("find-token.php?where=country", {
         classes: {
              tokenList: "token-input-list-facebook",
              token: "token-input-token-facebook",
              tokenDelete: "token-input-delete-token-facebook",
              selectedToken: "token-input-selected-token-facebook",
              highlightedToken: "token-input-highlighted-token-facebook",
              dropdown: "token-input-dropdown-facebook",
              dropdownItem: "token-input-dropdown-item-facebook",
              dropdownItem2: "token-input-dropdown-item2-facebook",
              selectedDropdownItem: "token-input-selected-dropdown-item-facebook",
              inputToken: "token-input-input-token-facebook"
          }
   });
   .....
});
</script>


Файл find-token.php ищет в базе соответствующие данные и возвращает результат в формате json:
Код: выделить все
$where = $_GET['where']; //получаем доп.данные, в данном случае "?where=country"
$input = $_GET['q']; //здесь приходит вводимая пользователем фраза
$data = array(); //массив, в котором будут формироваться возвращаемые данные
//...всевозможные проверки и т.п. ...
if ($where == 'country')
  $query = @mysql_query('SELECT * FROM country WHERE name LIKE "%'.$input.'%"', $dblink);
while ($row = @mysql_fetch_assoc($query))
{
  $json = array();
  $json['value'] = $row['id'];
  $json['name'] = $row['name'];
  $data[] = $json;
}
header('Content-type: application/json');
echo json_encode($data);


Но после того, как данные были введены, они должны быть сохранены. Вот тут я и столкнулся с проблемой.
Этот input находится в форме, которая после заполнения соответственно отправляется на проверку и т.д.
Код: выделить все
<form method="post" action="addacceptscript.php">
....
<strong>Страна:</strong> <br>
<input type="text" name="country" id="country" value="" style="width:250px;" />
....
</form>


И вот если в скрипте, который обрабатывает форму (addacceptscript.php) сделать:
print_r($_POST), получаю:
Array ( [country] => undefined,undefined, [submit] => Подтвердить )

Два подряд undefined'а отображаются потому, что в злощасный инпут были введены два варианта (названия двух стран)
Как вы понимаете, проблема в "[country] => undefined,undefined".
Почему там не определенные значения? Как мне их привести к определенному виду?
Аватар пользователя
nomen
 
Сообщений: 5
Зарегистрирован: 27 мар 2011, 21:53

Re: Обработка данных от jquery.tokeninput

Сообщение Gennady » 27 мар 2011, 22:47

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

Вероятно потому, что данные, которые визуально были представлены, с формой не отправляются. Попробуйте посмотреть пример Modify Response with onResult Callback.
А еще есть такая прекрасная штука как FireBug. Поставьте, потратьте немного времени на освоение и забудете о проблемах отладки...
P.S. И чем не устраивает Autocomplete от разработчиков самой библиотеки? :?
Долог путь поучения, короток и успешен путь примеров (Сенека).
I'm a member of jQuery Meetups. jQuery users unite! Connect with other jQuery users... Присоединиться к jQuery Russia.
Аватар пользователя
Gennady
Администратор
 
Сообщений: 1886
Зарегистрирован: 14 янв 2010, 14:36
Откуда: Москва

Re: Обработка данных от jquery.tokeninput

Сообщение nomen » 27 мар 2011, 23:05

Gennady писал(а):Вероятно потому, что данные, которые визуально были представлены, с формой не отправляются. Попробуйте посмотреть пример Modify Response with onResult Callback.

По идее, если бы данные не отправлялись, то количество undefined'ов не совпадало бы с количеством введенных вариантов (стран в данном случае).
За Modify Response with onResult Callback спасибо, не долистал :oops:

Gennady писал(а):P.S. И чем не устраивает Autocomplete от разработчиков самой библиотеки? :?

погнался за "красотой", да и показалось, что реализован мой вариант понятнее, блин :?
Аватар пользователя
nomen
 
Сообщений: 5
Зарегистрирован: 27 мар 2011, 21:53


Вернуться в Плагины jQuery

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2