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 :

Relecture de formulaire à lignes variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut Relecture de formulaire à lignes variables
    Bonjour,
    Voila je génère un formulaire en lisant selon critère une table en do while.
    J'aimerais savoir comment il est possible de relire ce formulaire généré avec un nombre de ligne forcement variable pour pouvoir faire les modifications des lignes modifiées. (un peu le principe de la gestion des enregistrements cochée dans les tables mysql)
    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    si tu as bien construit tes champs en tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    uneboucle {
    echo 'input type="text" name="monchamp[]" />';
    }
    tu recupères POST['monchamp'] qui contient tout.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Bonjour Sabotage,
    Merci de ta réponse.
    Le problème c'est que comme les ligne sont générés dans une boucle à chaque ligne les noms de champs sont identiques. Dans ton exemple chaque ligne à un champ qui s'appelle "monchamp"
    Donc dans le $_POST qu'est-ce ça va donner?
    A+

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Citation Envoyé par GYK Voir le message
    Dans ton exemple chaque ligne à un champ qui s'appelle "monchamp"
    Donc dans le $_POST qu'est-ce ça va donner?
    Un tableau possédant toutes les valeurs des champs.

  5. #5
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Bonjour Thes32,
    Dans mon $_POST, je n'ai que les valeurs de ma dernière ligne.
    A+

  6. #6
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Dans ce cas vérifie que l'attribut name tous tes champs a la forme:

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    As tu fais attention à la remqrque :
    Citation Envoyé par sabotage
    tu recupères POST['monchamp'] qui contient tout.
    Dans le déroulement que tu montre, on ne voit nulle part la récupération des données envoyées par POST.

    Fait un print_r($_POST) au tout début de ta page, ça te permettras de vérifier les données reçues.

    Il faudrait à mon sens une alternative :
    - Soit par défaut c'est les données de la Bdd
    - Soit c'est celles reçues en POST (donc après soumission, rechargement de la page).

  8. #8
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Bonjour RunCodePhp,
    Oui j'avais vu et je le fais, mais je n'avais pas mis le code qui correspond au traitement du formulaire vu que dans le contenu de mon $_POST je n'ai pas les bonnes valeurs.

  9. #9
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    C'est surement au niveau de la construction du formulaire qui va pas, particulièrement au niveau de la boucle do / while. Enfin, je pense.

    Faudrait voir le code généré, ça sera peut être plus évident de voir où se situerait l'erreur.
    Ce qui pourrait aider aussi, ce serait de rajouter explicitement l'incrémentation des noms comme prenom[] (par un $i par exemple).

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php 
    // Boucle de génération du formulaire
    $i = 0;
    while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) {
    ?>
     
    ... etc ...
     
    <input class="posmod" name="nconfirme[<?php echo $i; ?>]" type="checkbox" id="nconfirme[<?php echo $i; ?>]" value="<?php echo $confirme; ?>" />
     
    ... etc ...
     
    <?php
    	$i++;
    } // Fin de boucle de génération du formulaire
    ?>
    (j'ai changé un poil. Je ne suis pas très fan des do/while, du moins je l'utilise jamais, donc je ne sais pas trop où mettre le compteur)


    Il y a tout de même cette partie qui à mon sens met quelque peu "en vrac" le HTML.
    Faudrait peut être éviter de mettre des commentaires n'importe où.
    Corriger comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    // Je construit une zone comprenant le prénom et la case à cocher $confirme
    ?>
    <input class="posmod" name="prenom[]" type="hidden" id="prenom[]" value="<?php echo $row_Recordset1['Prenom']; ?>"/>

  10. #10
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Je te remercie pour ta proposition.
    J'ai trouvé une solution qui solutionne un problème.
    J'ai donc fait sauté le code que tu disait.
    Maintenant je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td width="5%"><input class="posmod" name="nconfirme[<?php echo ucwords($row_Recordset1['Prenom']); ?>]" type="checkbox" id="nconfirme[]" value="<?php echo $confirme;?>" /></td>
    Le problème que j'ai maintenant, c'est que je ne récupère jamais ma valeur
    J'ai bien un dans mon array mais rien derriere le prénom, et si je décoche une case déjà coché je n'ai plus de correspondant.
    As tu une idée?

Discussions similaires

  1. Nom formulaire en variable ?
    Par popo68 dans le forum IHM
    Réponses: 5
    Dernier message: 07/12/2006, 10h43
  2. Colonnes fixes lignes variables
    Par vid2006 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 14/09/2006, 14h05
  3. VALUE d'un champ de formulaire avec variable php
    Par shub dans le forum Langage
    Réponses: 5
    Dernier message: 04/04/2006, 12h13
  4. supprimer le retour a la ligne variable
    Par azmimik dans le forum Général Python
    Réponses: 2
    Dernier message: 23/03/2006, 21h14
  5. Réponses: 1
    Dernier message: 03/03/2006, 13h53

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