ajouter une option à un select

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 : ajouter une option à un select

par kicoe » 01 juil. 2005, 15:04

Si tu veux absolument le mettre en avant dernier, tu peux toujours essayer de donner des identifiants a tes options... et alors pr mettre celle que tu veux en avant dernier, tu l'ajoute, et tu fais une requete sql (dont je te laisse l'ecriture :wink: ) pour echanger les id des deux derniers...
je dis ca, je dis rien... c du bricolage, mais bon! :P

par Invité » 01 juil. 2005, 11:13

est-ce que tu peux pas lui dire à quel endroit tu veux le placer en décrémentant de 1 ?
nouvel_element = new Option("tata",1,false,true); window.document.forms["frm"].elements["opt"].options[window.document.forms["frm"].elements["opt"].length-1] = nouvel_element;

par thierry » 17 juin 2005, 18:38

comme apparemment ce que je recherche n'existe pas, je met résolu.

par thierry » 16 juin 2005, 18:36

t'as essayé window.opener ?
je me suis planté :oops:

t'as raison c'est bien window.opener et pas window.parent.
je viens de rectifier sur l'autre message, mais je confirme que ça ne marche pas avec ie pour modifier une liste.

par patbator » 16 juin 2005, 18:28

hello,

t'as essayé window.opener ?
Devrait bien marcher pour toucher à la fenetre à partir de laquelle tu as fait un window.open ...

par thierry » 16 juin 2005, 18:20

Alors je ne saisis pas bien ton problème...
ok, je vais essayer d'être clair.

déja j'ai filé une partie du code(j'ai estimé que le reste était inutile vu que ce qui pose problème est juste la création d'une option à l'aide de js et de placer cette option en avant dernière position d'un seul coup).

maintenant pour rentrer dans les détails:
.1 formulaire avec champs texte et listes
.1 popup
.1 sorte de liste dans le formulaire qui possède une valeur "mise à jour" en dernière position, et le reste des options qui proviennent d'une table et créer de manière dynamique en php.

lorsque l'on clique sur la valeur "mise à jour" d'une des listes le popup est appelé.
à l'intérieur du popup une sorte de datagrid qui permettra l'ajout/suppression/modification des éléments de la liste.

une fois la mise à jour de la base effectuer en php, le popup appel la fonction js sur le formulaire et en fonction des paramètres rajoute/supprime/modifie une option de la liste qui l'a appelé.

pour info:
.on ne peut pas modifier une liste en utilisant window.opener... d'un popup avec ie(marche avec ff).
.je ne veux pas recharger la page du formulaire à partir du popup pour remplir la liste avec les nouvelle données sinon je perd toutes les infos que l'utilisateur aurait pu rentré dans les champs du formulaire.

par PhilFree » 16 juin 2005, 17:49

Alors je ne saisis pas bien ton problème...

Si tu fais un tri de tes données venant de la base avant d'en faire des options, elles restent toujours bien ordonnées et tu n'as pas ce problème.

Si tu as une liste alphabétique:

tata
titi
tutu


lorsque tu rajoutes toto à la fin de ta base de données

Grâce au tri alphabétique sur ce champ, tu as tes options qui apparaissent comme ça:

tata
titi
toto
tutu

par thierry » 16 juin 2005, 17:19

en fait à la base le select sera rempli de cette façon :wink:
sans rentrer dans les détails je dirais qu'au final je suis "obligé" de rajouter dynamiquement une option sans avoir à retourner sur le serveur.

par PhilFree » 16 juin 2005, 17:10

Tu mets tes options dans une base de données, c'est mieux.

et tu as qqchose comme ça:
	while ($val = mysql_fetch_array($result)) {
		echo "<option>" . $val["champx"] . "</option>" ;
	}

ajouter une option à un select

par thierry » 16 juin 2005, 15:58

salut,

est ce que quelqu'un connait une méthode pour ajouter une option à l'avant dernière place dans un select de manière direct(cad sans avoir à créer une nouvelle option à la dernière place et réecrires les valeurs pour les deux dernière options)?

voila où j'en suis:

Code : Tout sélectionner

<html> <head> <script language="javascript"> function sel() { window.document.forms["frm"].elements["opt"].options[window.document.forms["frm"].elements["opt"].length]= new Option("tata","1",false,true); } </script> <head> <body> <form name="frm"> <input type="button" onClick="sel()"> <select name="opt"> <option>titi</option> <option>toto</option> <option>tutu</option> </select> </form> </body> </html>