2014-07-13 2 views
0

Я пытаюсь использовать результат ввода типа ввода в удаленном вызове AJAX второго ввода типа ввода.Использование результата одного ввода Typeahead в удаленном запросе второго ввода

Вот что я до сих пор:

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']' 
    } 
} 

Что мне не хватает?

+0

Этот ответ помог? http://stackoverflow.com/a/21591540/203371 –

ответ

0

Кажется, что второй вход плохо настроил объект Bloodhound. Это должно быть примерно так:

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() 
    } 
} 
Смежные вопросы