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

PHP & Base de données Discussion :

recuperer les valeurs des champs d'un formulaire dynamique [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Par défaut recuperer les valeurs des champs d'un formulaire dynamique
    mon probleme est le suivant :
    j'ai un formulaire dynamique (les champs sont dynamique en se basant sur le nombre d'un compteur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        for($i=1; $i<=$nb_tache; $i++){
        while($row_tache=mysql_fetch_array($result_tache)){
        ?>
            <input name="mtg_<?php echo $i; ?>" type="text" id="mtg_<?php echo $i; ?>" size="10" />
            <input name="pu_<?php echo $i; ?>" type="text" id="pu_<?php echo $i; ?>" size="10" />
            <input name="qt_<?php echo $i; ?>" type="text" id="qt_<?php echo $i; ?>" size="10" />
        <?php } } ?>
    pour recuperer les valeurs des champs puis les stocker dans la base de données, j'ai utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST as $name => $value){
    echo 'champ "'.$name.'" valeur : "'.$value.'"<br>';
    }
    le probleme c'est que les noms des champs changent
    par exemple : champ "mtg_1" valeur : "7"

    comment faire pour faire la syntaxe basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable=$_POST['valeur_champs'];
    et aussi :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table(...) values (...)
    merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut
    Salut,

    si tu peux récupérer ta variable $nb_tache, tu pourrais faire une boucle de la même façon pour récupérer tes valeurs:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    for($i=1; $i<=$nb_tache; $i++) {
        $champ = 'mtg_'.$i;
        echo 'champ "'.$champ.'" valeur : "'.$_POST[$champ].'"<br>';
    } 
    ?>

  3. #3
    Membre confirmé Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Par défaut
    le probleme mnt, la boucle "for"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
        for($i=1;$i<=$nb_tache;$i++){
        while($row_tache=mysql_fetch_array($result_tache)){
        ?>
            <input name="mtg_<?php echo $i; ?>" type="text" id="mtg_<?php echo $i; ?>" size="10" />
            <input name="pu_<?php echo $i; ?>" type="text" id="pu_<?php echo $i; ?>" size="10" />
            <input name="qt_<?php echo $i; ?>" type="text" id="qt_<?php echo $i; ?>" size="10" />
        <?php } } ?>
    je n'arrive pas a incrémenté le compteur "$i"
    il est toujours "1"
    mais moi j'ai plusieurs données

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut
    je n'arrive pas a incrémenté le compteur "$i"
    il est toujours "1"
    C'est peut être que tout simplement ton $nb_tache est à 1 non?

  5. #5
    Membre confirmé Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Par défaut
    non sur la page formulaire, j'ai deja affiché la variable et ça donne un nombre supérieur à 1, mais coté formulaire il affecte toujours "1".
    c pas a cause de la boucle while????

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Salut,

    Je suppose que tu as un ID sur tes tâches ?

    Dans ce cas, il serait plus simple de faire (du côté formulaire et traitement) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    while($rowTache = mysql_fetch_assoc($resultTache)){
        ?>
        <input name="mtg_<?php echo $rowTache['id']; ?>" type="text" id="mtg_<?php echo $rowTache['id']; ?>" size="10" />
        <input name="pu_<?php echo $rowTache['id']; ?>" type="text" id="pu_<?php echo $rowTache['id']; ?>" size="10" />
        <input name="qt_<?php echo $rowTache['id']; ?>" type="text" id="qt_<?php echo $rowTache['id']; ?>" size="10" />
        <?php
    }
    ?>

    où 'id' est le nom du champ qui identifie une tâche dans ta BDD.

    Qui plus est, la structure de ton code est "foireuse" : tu fais un while dans un for. A la première boucle du for, il aura parcouru tous les résultats trouvés étant donné que le while s'arrête une fois qu'il n'y a plus de résultat. Si tu n'as qu'un résultat, tu n'as pas besoin de faire un while.
    A vrai dire, je ne comprends même pas comment ça peut marcher à l'affichage, ou alors tous tes champs de formulaire ont le même nom ('mtg_1','pu_1' et 'qt_1').

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/05/2011, 12h53
  2. Réponses: 3
    Dernier message: 11/05/2009, 20h02
  3. [AJAX] Garder les valeurs des champ d'un formulaire en mémoire
    Par joss91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/04/2008, 09h56
  4. [XSLT] Récupérer les valeur des champs
    Par webspeak dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/11/2006, 17h17
  5. Réponses: 3
    Dernier message: 20/09/2006, 16h07

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