Autocomplétion

Eléphanteau du PHP | 23 Messages

07 juin 2012, 11:31

Bonjour à tous, c'est encore moi :(

Donc mon soucis actuel est l'autocomplétion, j'ai utilisé une autocomplétion qui utilise du javascript bien sûr sinon je ne serai pas là.

En gros mon autocomplétion se situe après le choix d'un élément dans une liste déroulante, cette liste est donc lié à un input en autocomplétion. Pour pouvoir lier les deux, j'ai utiliser ce qui a été expliqué sur ce forum : faq-tutoriels/formulaires-listes-deroul ... t4562.html . Avec la méthode PHP j'ai un soucis, le rechargement ça me fait perdre mes données etc donc j'ai abandonné et je suis passé au javascript qui lui fonctionne à merveille pour les deux listes (même en ajoutant d'autres listes car mon appli devra en contenir beaucoup) mais lorsque j'ajoute au lieu d'une liste déroulante, un input et que j'essaye de faire de l'autocomplétion ça ne fonctionne pas. Voici le code actuel du script qui faudrait que j'arrive à changer pour qu'il fonctionne.

Code : Tout sélectionner

<script> $(document).ready(function() { $("input#autocomplete").autocomplete({ source: [ ] }); }); </script>
Dans le "source" doit se trouver un tableau avec des valeurs sous la forme 'blabla', 'blabla2', 'blabla3', etc.
Mais c'est là que je bloque je ne sais absolument pas comment ajouter les valeurs récupérées en fonction de la liste, en php ça fonctionnait mais là c'est plus pareil car on ne recharge pas la page.

Je pense que si j'arrivai juste à récupérer l'id ou le nom du select qui a été sélectionné ça serait bon car je pourrai le mettre dans la condition de ma requette SQL et voir si la suite fonctionne.

EDIT : je ne pense pas être assez clair sur mon soucis. J'ai donc une liste déroulante :

Code : Tout sélectionner

<select name="type_objet" id="type_objet" onchange="changeObj(tab_objet,this.value)"> <option value="vide">- - - Choisissez une type_objet - - -</option> <?php /* Construction de la première liste : on se sert du tableau PHP */ $nbr = count($type_objets); foreach($type_objets as $nro => $nom){ ?> <option value="<?php echo($nro); ?>"><?php echo($nom[0]); ?> </option> <?php } ?> </select>
Et donc c'est la valeur de l'éléments de la liste que je dois récupérer pour pouvoir effectuer mes trucs d'autocomplétion.


Avez-vous une solution à me proposer svp ?

Merci d'avance.

Eléphanteau du PHP | 23 Messages

07 juin 2012, 14:41

Bon, après plusieurs recherches et tests, je me rend compte qu'il est impossible d'utiliser du php pour de l'autocomplétion sans recharger la page lorsqu'il est lié dans mon cas avec la liste déroulantes. En effet, des choses que j'ai oublié : Php côté client, javascript côté serveur (me semble bien que je dise pas de bêtises.) donc c'est pour ça que dans mon autre fichier qui n'utilisait pas de javascript je pouvais faire de l'autocomplétion à chaque rechargement de page.

Or là est le soucis, car je vais avoir un formulaire avec au moins 2 listes liées à un input (en auto) donc au moins 2 rechargements de pages, et donc pertes des données saisies. Peut être faudrait-il les enregistrer dans des variables de session ? Mais étant donné que je vais sûrement rajouter l'option d'ajout du même formulaire, cela ne fera-t-il pas trop de variables ?

Qu'en pensez-vous, je dois dire que je suis assez perdu là... Ce projet est assez compliqué dans ce qui est demandé...

Maxokoi
Invité n'ayant pas de compte PHPfrance

09 juin 2012, 12:29

Bonjour,

je n'ai pas la solution a ton problème mais juste une remarque qui pourrait peut-être te faire voir la chose autrement,
la javascript est du coté client et le php coté serveur. Seul le javascript (AJAX) te permet de faire du dynamisme sans recharger la page.

Voilà, bonne continuation

Eléphanteau du PHP | 23 Messages

13 juin 2012, 08:39

Bonjour,

je n'ai pas la solution a ton problème mais juste une remarque qui pourrait peut-être te faire voir la chose autrement,
la javascript est du coté client et le php coté serveur. Seul le javascript (AJAX) te permet de faire du dynamisme sans recharger la page.

Voilà, bonne continuation
Bonjour,
Autant pour moi, j'ai encore une fois inversé les deux. Malheureusement, cela ne change pas mon problème j'ai eu beau cherché et faire plusieurs modification et tests, rien y fait :s

Personne n'a de petite pistes pour pouvoir remplir le tableau de valeur source[] sans rechargement de page (avec les valeurs d'une table en fonction d'un choix) svp ?

Merci quand même des précisions et pour les futurs réponses :)