Autocompletion

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Autocompletion

Re: Autocompletion

par two3d » 02 mars 2021, 14:21

en effet, je vois pas d'où peut venir le problème

Je sais que c'est pas bien de donner une réponse toute faite (surtout pour le fait de ne pas comprendre comment ça marche) mais voilà ce que j'ai pu faire en m'aidant de ce tuto: https://x-zolezzi.developpez.com/tutori ... tion/#LIII
$("#autocomplete-5").autocomplete({
	source: function (request, response){
		$.ajax({
			url: "nom.php",
			dataType: "json",
			data:{ term: request.term },
			type: 'POST',
			success: function (data){
				response($.map(data, function (item){
					return{
						label: "Nom: " + item.label + ", value: " + item.value,
						value: function (){
							return item.label+' '+item.value;
						}
					}
				}));
			},
			error: function(data){
				console.log("erreur");
			}
		});
	},
	minLength: 2,
	delay: 500
});
Il y a également une alternative à jQuery autocomplete: http://autocomplete-js.com/

Re: Autocompletion

par or 1 » 02 mars 2021, 13:04

"String: When a string is used, the Autocomplete plugin expects that string to point to a URL resource that will return JSON data. It can be on the same host or on a different one (must support CORS). The Autocomplete plugin does not filter the results, instead a query string is added with a term field, which the server-side script should use for filtering the results. For example, if the source option is set to "https://example.com" and the user types foo, a GET request would be made to https://example.com?term=foo. The data itself can be in the same format as the local data described above."

donc source: "nom.php" peut fonctionner, et a l'air de fonctionner.

Re: Autocompletion

par two3d » 02 mars 2021, 13:01

source: "nom.php", <- ne fonctionnera pas, j'ai mis le lien vers la source plus haut (prend en compte un tableau, une chaine ou une fonction, pas une URL (AJAX (post/get) oui en revanche mais pas "source")

Re: Autocompletion

par bignono1639 » 02 mars 2021, 12:55

"No result found" s'affiche

Re: Autocompletion

par or 1 » 02 mars 2021, 12:42

if (ui.content.length === 0) {
$("#empty-message").text("No results found");
} else {
$("#empty-message").empty();
}

que se passe-t-il dans la page ? cela affiche "No results found" ? ou il ne se passe rien (ce qui est normal vu le traitement effectué quand il y a un résultat) ?

Re: Autocompletion

par bignono1639 » 02 mars 2021, 03:06

Oui ceci:

["JAVA","JAVASCRIPT","IMAGE PROCESSING USING JAVA"]

Re: Autocompletion

par or 1 » 01 mars 2021, 21:09

l'ouverture de l'url nom.php?term=JA dans un nouvel onglet affiche bien un résultat ?

Re: Autocompletion

par bignono1639 » 01 mars 2021, 20:58

Bonjour,

Le console.log(ui) me retourne "{content: Array(0)}"

Et lorsque je suis dans l'onglet "Network" j'ai une ligne comme ceci qui apparaît
nom.php?term=JA

où JA correspond à ce que j'ai tapé

Re: Autocompletion

par two3d » 01 mars 2021, 12:09

Je connais pas beaucoup l'autocompletion, je suppose que c'est avec jQuery UI.

Tu as la doc ici: https://api.jqueryui.com/autocomplete/#event-response

Ton problème semble venir de ton option "source" que tu n'utilise pas comme il faut: https://api.jqueryui.com/autocomplete/#option-source

J'ai regardé un de mes codes; je lance l'autocomplete et je donne une fonction à source où jy place un $.ajax(...) à l'intérieur ;)

Re: Autocompletion

par Ryle » 01 mars 2021, 11:41

Salutations !

Dans ton code, à quel moment de ton appel ajax à ton script nom.php pour obtenir une liste de résultats, est-ce que tu transmets une valeur pour terme ?

Vérifie que ton script d'autocomplete envoi bien cette valeur (et qui plus est en get), pour t'assurer qu'elle sera bien traitée côté php.

(Dans la console du navigateur, il y a généralement un onglet réseau/network qui te permet de voir les informations envoyées et reçues... tu peux ainsi t'assurer de l'appel que fais ton script au serveur quand tu saisis des caractères dans ton champ)

Re: Autocompletion

par two3d » 28 févr. 2021, 18:51

console log de ui retourne quoi ?

Re: Autocompletion

par bignono1639 » 28 févr. 2021, 18:45

Ca m'affiche []

Re: Autocompletion

par two3d » 28 févr. 2021, 18:21

place au débug!

met un simple echo "Bonjour"; dans ton nom.php pour voir ce que retourne ui.content

Re: Autocompletion

par bignono1639 » 28 févr. 2021, 17:46

Justement c'est vide...

Re: Autocompletion

par two3d » 27 févr. 2021, 14:28

regarde via un console.log ce que te retourne la page nom.php

console.log(ui.content);

Ton strtoupper($companyLabel) est inutile car tes label sont déjà en MAJUSCULES:
if ( strpos( strtoupper($companyLabel), strtoupper($term) )!== false ) {
if ( strpos( $companyLabel, strtoupper($term) )!== false ) {