Это решение вышеуказанной проблемы, которое позволяет передавать значения из цикла foreach как объект данных и, как результат, получать его в сценарии с помощью пользовательских данных data.mail и data.department.
foreach($result["data"] as $user){
//$data[] = "{$user["mail"]}" ;
if($user['mail'] != null ){
$data['mail'][] = $user['mail'];
$data['department'][$user['mail']] = $user['department'];
}
}
<script>
$(document).ready(function(){
$('#mail_field').typeahead({
source: function (query, process) {
return $.post('http://127.0.0.1:8000/api/userdetailstypeahead', { query: query },
function (data) {
//console.log(data.mail);
//console.log(data.department);
window.department = data.department;
return process(data.mail);
});
},
afterSelect : function(value){
console.log(window.department[value]);
//console.log(value);
//console.log(window.department);
$('#department_field').val(window.department[value]);
}
});
});
</script>