Reputation: 25
I'm trying to use the result of a typeahead input in the remote AJAX call of a second typeahead input.
Here's what I have so far:
var result1 = new Bloodhound({
datumTokenizer : Bloodhound.tokenizers.obj.whitespace('result'),
queryTokenizer : Bloodhound.tokenizers.whitespace,
limit : 100,
remote : {
url : 'getResult1.php?q=%QUERY'
}
});
result1.initialize();
$('#input1').typeahead({
minLength : 2
}, {
name : 'result1',
displayKey : 'result',
source : result1.ttAdapter()
}
}).on('typeahead:selected typeahead:autocompleted', function($e, datum) {
$('#input2').typeahead({
minLength : 1
}, {
name : 'result2',
displayKey : 'value',
remote: {
url : 'getResult2.php?q=%QUERY&r=datum['result']'
}
}
What am I missing ?
Upvotes: 0
Views: 175
Reputation: 918
Seems that the second input doesn't have well configured the Bloodhound object. It must be something like this:
var result1 = new Bloodhound({
datumTokenizer : Bloodhound.tokenizers.obj.whitespace('result'),
queryTokenizer : Bloodhound.tokenizers.whitespace,
limit : 100,
remote : {
url : 'getResult1.php?q=%QUERY'
}
});
result1.initialize();
$('#input1').typeahead({
minLength : 2
}, {
name : 'result1',
displayKey : 'result',
source : result1.ttAdapter()
}
}).on('typeahead:selected typeahead:autocompleted', function($e, datum) {
var result2 = new Bloodhound({
datumTokenizer : Bloodhound.tokenizers.obj.whitespace('result'),
queryTokenizer : Bloodhound.tokenizers.whitespace,
limit:100,
remote: {
url : 'getResult2.php?q=%QUERY&r=datum['result']'
}
});
result2.initialize();
$('#input2').typeahead({
minLength : 1
}, {
name : 'result2',
displayKey : 'value',
source: result2.ttAdapter()
}
}
Upvotes: 1