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 :

Récuperer les valeurs d'un formulaire dynamique


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut Récuperer les valeurs d'un formulaire dynamique
    Bonjour à tous,
    je me suis lancé dans le code d'un formulaire, qui se génère automatiquement par rapport à une bdd.
    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
     
    echo'<form action="commander_formulaire_fin.html" class="cssform"  enctype="multipart/form-data" method="post" >';
    $requete = "select * from document ORDER BY nomdoc";
    		$requ = mysql_query($requete) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    		while ($ligne = mysql_fetch_object($requ)){
    		echo'<tr>
    		<td >		
    		<input type="hidden" name="id" value="'.$ligne->id.'" />&nbsp;&nbsp; '.stripslashes($ligne->refdoc).'</td>
    		<td>&nbsp;&nbsp; '.stripslashes($ligne->nomdoc).'</td>
    		<td><input  type="text" name="qte'.$comp.'" size="5" maxlength="10"  id="qte" value="" /></td>
    		</tr>
    		<tr><td colspan="3"><hr /></td></tr>';
    		}
    		echo'<tr><td colspan="3" class="droite"><br /><input class="boutonmodbleu" type="submit" name="commander" value="Commander" /><br /><br /></form></td></tr>
    		</table>
    		</div>';
    mon souci c'est qu ensuite je ne sais pas comment faire pour récupérer les valeurs les valeurs "$ligne->nomdoc" et "qte" ligne par ligne.
    pour les insérer dans une autre bdd.

    merci d'avance de votre aide
    Cordialement

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire ta requête d'insertion à l’intérieur de cette boucle.
    Sinon met à chaque tour de boucle la valeur dans un tableau PHP et faire l'insertion ensuite à partir de ce tableau.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    non au final mon souci, c'est lors de l'utilisation du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach($_POST as $key => $value) {
            $$key = $value;
    	echo ''.$value.'<br />';		
    }
    unset($value);
    }
    je ne sais pas comment récupérer les valeurs ligne par ligne pour les insérer en bdd

    Un bout de code serait le bienvenu

    Merci

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Fait ton formulaire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while ($ligne = mysql_fetch_object($requ)){
    		echo'<tr>
    		<td >'.stripslashes($ligne->refdoc).'</td>
    		<td>&nbsp;&nbsp; '.stripslashes($ligne->nomdoc).'</td>
    		<td><input  type="text" name="qte[' . $ligne->id . ']" size="5" maxlength="10"  id="qte" value="" /></td>
    		</tr>
    		<tr><td colspan="3"><hr /></td></tr>';
    		}
    Tu recuperes ainsi $_POST['qte'][*ton_id*][*ton_valeur*]
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    l'idée est bonne, mais mon blem
    vient de la récupération des données avant insertion en bdd

    le formulaire envoi vers une autre page pour insérer en bdd
    c'est dans cette page que je ne sais pas comment récupérer les données.

    il faut que pour chaque ligne du formulaire dont la quantité n'est pas vide que je récupère.
    refdoc|nomdoc|qte
    la bdd d'insertion est sous cette forme
    id refdoc nomdoc qte etc....
    je doit donc insérer exemple :
    id refdoc nomdoc qte
    1 ref1,ref2,.. nom1,nom2,.. qte1,qte2,...
    comprends tu moi souci.
    si il y a une meilleurs idée je suis preneur.

    Merci

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    puisque l'utilisateur n'a pas la possibilité de modifier refdoc et nomdoc, ca serait une mauvaise idée de faire circuler ces valeurs dans le formulaire.
    il vaut mieux reprendre les valeurs dans la table "document" à partir de l'id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($_POST['qte'] as $id => $qte) {
        $sql = 'INSERT INTO ta_table (refdoc, nomdoc, qte)
    SELECT (refdoc, nomdoc, ' . intval($qte) . ') FROM document WHERE id = ' . intval($id);
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Désolé mais je ne comprends pas l'idée.
    lorsque le formulaire est soumis les données sont insérer dans un autre bdd appelé "commande".

    j'ai essaye le code mais j'ai une erreur
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    J'avais mis un ' en trop mais bon tu devrais être capable de corriger ça.

    Pour le principe, comme je t'ai dis, ton formulaire va te renvoyer par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_POST['qte'][4] = 12
    $_POST['qte'][6] = 8
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    le code ne met pas d'erreur,
    mais cela n’insère rien en bdd
    voici le code que je mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($_POST['qte'] as $id => $qte) {
    echo($qte);
       $sql = 'INSERT INTO commande ("","",refdoc, nomdoc, qte,"","")
    SELECT (refdoc, nomdoc, ' . intval($qte) . ') FROM document WHERE id = ' . intval($id);
    }
    Ce qu'il faut comprendre c'est que j'ai une bdd document qui contient les documents.
    c'est a partir de cette bdd qu'est généré le formulaire.

    ensuite une fois ce formulaire envoyé, les données doivent être inséré dans une autre bdd s'appelant commande

  10. #10
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code que je t'ai mis n'était qu'un exemple pour la démarche.
    Tu vois bien qu'il manque l’exécution de la requête.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    ok,
    par contre je n'ai pas de champs qte dans ma bdd document, mais dans la bdd commande.

  12. #12
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans la requête que j'ai indiquée, la quantitée est une valeur provenant du formulaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    merci de ton aide,
    mais je n'arrive pas mettre in place l'insertion des valeurs dans la bdd "commande"

    Peux tu m'indiquer dans la boucle foreach les paramètres pour que cela fonctionne.

    j'ai du mal avec la requête.

    Merci

Discussions similaires

  1. récuperer les valeurs d'un formulaire
    Par hartecel dans le forum Langage
    Réponses: 4
    Dernier message: 10/06/2008, 14h34
  2. Applet pour récuperer les valeurs d'un formulaire html
    Par BetterWorld dans le forum Applets
    Réponses: 1
    Dernier message: 19/05/2007, 22h15
  3. javascript pour récuperer les valeurs d'un formulaire html
    Par BetterWorld dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/05/2007, 12h09
  4. Récuperer les valeur d'un formulaire en CGI
    Par crakos dans le forum C++
    Réponses: 1
    Dernier message: 29/05/2006, 12h16

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