Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2008, 13h24   #1
Invité de passage
 
Inscription : juin 2008
Messages : 4
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2008
Messages : 4
Points : 1
Points : 1
Envoyer un message via MSN à neantique
Par défaut SELECT créés dynamiquement

Bonjour,
Je suis nouveau ici ainsi qu'en dev.
Voilà je me permets de poser un question car j'ai un petit soucis avec un la balise <select>.

Chaque ligne de la liste de mes utilisateurs enregistrés se termine par une liste déroulante où je liste les différents groupe à affecter aux utilisateurs (Administrateur, Utilisateur, Invité etc...) et un bouton permettant d'affecter l'utilisateur au groupe.
La liste déroulante est un script php qui me permet d'afficher les occurences de ma table Groupe.
Pour que chaque ligne se termine par cette liste, j'ai placé le script dans une boucle while.
Voilà mon <select> :
echo "<td><SELECT name = 'cboDemande' id='cboDemande' onchange='DemandeComboChanged()'>

et ma fonction javascript DemandeComboChanged()
function DemandeComboChanged()
{
var currentDocument = document.all;
currentDocument.strUserId.value = currentDocument.cboDemande.options[document.all.cboDemande.selectedIndex].id;
}

Tant que j'utilise cela pour l'affichage d'un seul <select>, tout se passe parfaitement bien, je récupère bien la valeur attendue dans mon POST.

Mais lorsque je place le <select> dans une boucle, je n'ai plus rien dans mon POST.

J'imagine que le problème est lié à l'attribut name ou id de mon <select>.

Je ne vois pas comment changer dynamiquement le name ou l'id de cboDemande en cboDemande#
Et je ne vois pas comment récupérer cette info dans ma fonction javascript puisque l'attribut y figure currentDocument.strUserId.value = currentDocument.cboDemande.options[document.all.cboDemande.selectedIndex].id;

StrUserId est utilisée pour le POST

echo '<input type="hidden" name="strUserId" id="strUserId"/>';

IE7 retourne l'erreur : 'cboDemande.options' is null or not an object

Merci pour toute participation
neantique est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 13h35   #2
Membre régulier
 
Inscription : août 2006
Messages : 78
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 78
Points : 71
Points : 71
Hello,

Normal que cela ne marche pas car le name est le même pour tous.

Donc tu peux faire quelque chose du genre:

Code :
echo "<td><SELECT name = 'cboDemande_".$i++."' id='cboDemande_".$i++."' onchange='DemandeComboChanged(this)'>

Et dans le javascript tu travaille avec l'objet this.
PinGu- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 13h50   #3
Invité de passage
 
Inscription : juin 2008
Messages : 4
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2008
Messages : 4
Points : 1
Points : 1
Envoyer un message via MSN à neantique
Par défaut Merci

Bonjour et merci, désolé de ne pas avoir répondu plus tôt, le système ne me le permettais pas et je viens de recevoir seulement maintenant l'activation de mon compte.
Donc c'est bien ce que je pensais, un problème d'identification vu que tous portait le même nom et le même id.
J'ai commencé par utiliser le This mais un gentil developpeur m'a aidé et a mis le bazard donc mon code, bref j'ai utilisé une autre methode.
En tout cas merci, tu m'as bien dépanné, je pensais à This.

Juste une petite remarque, tu mets nom="cboDemande_'.$i++ et id="cboDemande'.$i++ ce qui pose un probleme puisque cette ligne créé un décalage dans les noms des objets.
J'ai donc écrit plutot nom="cboDemande_'.$i et nom="cboDemande_'.$i puis j'ai incrémenté $i ailleurs dans le code.
neantique est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h59.


 
 
 
 
Partenaires

Hébergement Web