IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème champ texte dans boucle while


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut problème champ texte dans boucle while
    Bonjour à tous. Je rencontre actuellement un problème de nommage de champs textes figurant dans ma boucle while. A la fin du formulaire, j'ai un bouton "modifier" qui appelle une autre page dans laquelle je récupère les données de ces champs sous la forme $_POST['monchamp']. Or mon navigateur m'affiche

    "Undefined index: membre0_nom in ..."

    La déclaration des champs texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while(($row_bis = mysql_fetch_array($result_select_membres)) && ($i <= 6)){
        echo "<tr>
                <td><label for='member$i'>Nom et pr&eacute;nom du membre $i</label></td>
                <td><input type='text' tabindex='10' size='20' value='$row_bis[0]' id=\"membre\".$i.\"_nom\" name=\"membre\".$i.\"_nom\"></td>
                <td><input type='text' tabindex='10' size='20' value='$row_bis[1]' id=\"membre\".$i.\"_prenom\" name=\"membre\".$i.\"_prenom\"></td>
                 </tr>";
                 $i = $i + 1;
               }
    Et maintenant la récupération des données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $membres = 0;
    while($membres <= 5){
    	$nom_membre = $_POST['membre'.$membres.'_nom'];
    	$prenom_membre = $_POST['membre'.$membres.'_prenom'];
    	echo $nom_membre."<br>";
    	echo $prenom_membre."<br>";
    	$membres = $membres + 1;
    }
    Je pense avoir une erreur de syntaxe, mais pour l'instant je ne m'en sors pas. Déjà que je n'ai pas trop avancé ce matin, toute aide sera la bienvenue

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' tabindex='10' size='20' value='$row_bis[0]' id=\"membre\"$i\"_nom\" name=\"membre\"$i\"_nom\">
    A+.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    - "sort" le code html du code php
    - double " en html, simple ' en php
    - utilise plutot des array : ... name="nomvariable[$i]" ...
    - et en récupération : un foreach ...
    - pourquoi utiliser $i quand on a id_membre (unique) ?

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' tabindex='10' size='20' value='$row_bis[0]' id=\"membre\"$i\"_nom\" name=\"membre\"$i\"_nom\">
    A+.
    Heu...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' tabindex='10' size='20' value='$row_bis[0]' id='membre$i_nom' name='membre$i_nom'>
    si l'on veut respecter les quotes, ceci dit, les conseils de jreaux à ce sujet sont préférables
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Merci pour ta réponse, jreaux62, mais j'ai finalement trouvé la bonne syntaxe en cherchant de mon côté. Enfin je pense

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input type='text' tabindex='10' size='20' value='$row_bis[0]' id='membre".$i."_nom' name='membre".$i."_nom'></td>

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Effectivement, pourquoi faire simple
    A quoi ça te sert d'utiliser les doubles quotes en PHP si c'est pour ne pas utiliser le fait que les variables à l'intérieur sont interprétées ???

    Et encore une fois, tu gagnerais a appliquer systématiquement les conseils donnés par jreaux, mais bon, ensuite, c'est toi qui vois hein... si tu préfères un code moins lisible
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Invité
    Invité(e)
    Par défaut
    On peut aussi écrire "proprement" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    		while($row_bis = mysql_fetch_array($result_select_membres))
    		{
    			$id = $row_bis['id_membre'];
    			$nom = htmlentities($row_bis['nom']);
    			$prenom = htmlentities($row_bis['prenom']);
    ?>
    		<tr>
                <td><label for="idmembre_nom[<?php echo $id; ?>]">Nom et pr&eacute;nom du membre <?php echo $id; ?></label></td>
                <td><input type="text" tabindex="10" size="20" id="idmembre_nom[<?php echo $id; ?>]" name="membre_nom[<?php echo $id; ?>]" value="<?php echo $nom ; ?>" /></td>
                <td><input type="text" tabindex="10" size="20" id="idmembre_prenom[<?php echo $id; ?>]" name="membre_prenom[<?php echo $id; ?>]" value="<?php echo $prenom ; ?>" /></td>
    		</tr>
    <?php	} ?>
    Exemple de récupération:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	// recuperation :
    	foreach($_POST['idmembre_nom'] as $index => $nom) {
    		$id = $index;
    		$membre_nom = $nom;
    		$membre_prenom = $_POST['idmembre_prenom'][$id];
    		// ... suite du traitement
    	}
    ?>

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Heu...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' tabindex='10' size='20' value='$row_bis[0]' id='membre$i_nom' name='membre$i_nom'>
    si l'on veut respecter les quotes, ceci dit, les conseils de jreaux à ce sujet sont préférables
    Y a des trucs qui sont contagieux ici .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'export champs texte dans un csv
    Par laurent27530 dans le forum SQL
    Réponses: 2
    Dernier message: 11/05/2015, 13h00
  2. Problème de bouton stop dans boucle while
    Par Simon et ulrich dans le forum LabVIEW
    Réponses: 4
    Dernier message: 04/08/2011, 10h59
  3. Problème avec variable dans boucle DO WHILE
    Par bandit_debutant dans le forum Langage
    Réponses: 13
    Dernier message: 25/02/2008, 16h34
  4. Réponses: 2
    Dernier message: 21/06/2007, 13h40
  5. Champ text dans table inserted ?
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/06/2004, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo