gerry_m
gerry_m

Reputation: 25

Using result of one Typeahead input in remote query of a second input

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

Answers (1)

vfportero
vfportero

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

Related Questions