Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Обработка данных от jquery.tokeninput


Автор: maaks_mouse 27.3.2011, 21:12
Приветствую, господа. 
Подскажите пожалуйста, каким образом можно обработать данные полученные от такого (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". 
Почему там не определенные значения? Как мне их привести к определенному виду?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)