2013-08-01 4 views
6

Я пытаюсь использовать тип Twitter, но у меня есть проблема. Я не знаю, как typeahead передает строку на сервер. Это через параметр GET? Если да, то каково имя параметра?Twitter Typeahead remote

+1

, когда я Google 'машинописный удаленного example' эта страница показывает вверх: http://twitter.github.io/typeahead.js/examples/ – davidkonrad

ответ

14

Простейший параметр GET позволяет выбрать любой параметр, который вы хотите.

В JS:

$('#search').typeahead({ 
    name: 'Search', 
    remote: '/search.php?query=%QUERY' // you can change anything but %QUERY, it's Typeahead default for the string to pass to backend 
}); 

В PHP (или любой другой бэкенд есть):

$query = $_GET['query']; 

Надеется, что вы получите основную идею.

+0

Кроме того, если вы используя сегменты маршрутизации URL, вы можете сделать это следующим образом: http: // domain/resource /% QUERY ' –

1

Возможно, вы захотите рассмотреть что-то подобное, это очень простой пример удаленного источника данных. Параметр прибудете в этом примере «д»

// Get your data source 
var dataSource = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote: { 
     url: 'path/to/your/url/json/datasource/?q=%QUERYSTRING', 
     wildcard: '%QUERYSTRING' 
    } 
}); 

// initialize your element 
var $typehead = $('#form input').typeahead(null, { 
    source: dataSource 
}); 

// fire a select event, what you want once a user has selected an item 
$typehead.on('typeahead:select', function(obj, datum, name) { 
    //your code here 
}); 

//////////////////////////////////// 
# in python (django) we get a query string using the request object passed through a view like this 
query = request.GET.get('q') or "" 
//the caveat [or ""] is just to prevent null exceptions 

/////////////////////////////////// 
# using php 
$query = ($_GET['q']) ? $_GET['q'] : ""; 
Смежные вопросы