Résultat QueryBuilder - Requête Ajax avec Symfony2
Bonjour,
Après plusieurs jours de débogage sans résultats, j’espère trouver les solutions à mon problème sur ce forum.
Contexte : J'ai souhaité développer une requête Ajax simple d'auto-complétion.
Pour cela je possède dans un fichier main.js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function autocomplet() {
var keyword = $('#input_searchNom').val();
$.ajax({
url: Routing.generate('autocomplete', { "keyword": keyword}),
type: 'POST',
success: function(data) {
$('#search_list_id').show();
$('#search_list_id').html(data);
console.log(data);
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
}
});
} |
Dans un fichier adminController.php, une fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| function requette_ajaxAction($keyword){
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository('GesceBundle:Researcher');
$query = $repository->createQueryBuilder('p')
->where('p.nom LIKE :word')
->setParameter('word', '%'.$keyword.'%')
->getQuery();
$researchers = $query->getResult();
if($researchers){
die($researchers);
}
else{
die("Erreur lors de la requêtte ! ^^");
}
} |
Lorsque l'utilisateur entre une lettre dans l'input #input_searchNom, une requête Ajax s'éffectue, à ce moment une liste déroulante doit s'afficher avec la liste des champs correspondant aux résultats de la requette. Cependant je n'arrive pas à faire passer la liste de nom. J'obtien à l'affichage dans la console et dans la vue : "Array"
Si je remplace $researchers par $researchers[0] j'obtiens : "Journal".
J'ai donc des données inexploitables ... Je voudrais au moins pouvoir récupérer une liste de nom comme il est prévu, après je m'occuperai de l'affichage.
Merci d’avance.