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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.