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 :

Mise à jour et liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Mise à jour et liste déroulante
    Bonjour,

    Je planche sur un gros gros problème actuellement.

    Pour schématiser, j'ai deux tables :

    1) Une table vêtements avec 3 champs :
    - Id du vêtement (normal)
    - Nom du vêtement
    - Id de l'état (clé étrangère <=> clé primaire de ma seconde table)

    2) Une table état avec 2 champs :
    - Id de l'état
    - Clair de l'état (enum avec plusieur choix : Non receptionné, propre, sale...)

    Première étape :

    Ma page d'affichage :
    Ici, pas trop de problème, un select * from vetement, j'affiche l'ID ainsi que le nom du vêtement +
    UNE BALISE de type select, dans laquelle, je fais un SELECT * FROM ETAT :

    Je place ma balise select dans ma boucle while (celui qui liste mes id, etc etc...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="MTLsClair<?php echo $nb_select ;?>">
    Avec ce code, chaque select aura un nom propre (nb_select, est une variable initialisée à 0 et que je place en type hidden)...

    2ème étape :
    Ma page de traitement je crée une boucle de telle manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for($i=0 ; $i < $nb_select; $i++) 
    {
     echo $_POST['MTLsClair' . $i] ;
    }
    Je récupére les ETATS de tous mes selects et je suis prêt à faire un UPDATE...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $v4 =  $_POST['MTLsClair' . $i] ;
    mysql_query ("UPDATE vetement SET ETAT = $v4 WHERE idvetement = ????")
    // voila ou se pose le probleme, je n'ai mes ID,  Je code de manière schématique.
    Voilà, si quelqu'un à une autre façon de faire ou peut m'aider, ça serait vraiment très gentil.

    Merci.

  2. #2
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Salut,

    Tu pourrais nous expliquer plus ce qui te bloque / ce que tu cherche à faire ? J'ai l'impression que tu t'embête parce que tu ne sais pas qu'on peut utiliser des tableaux en noms de champs en HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="MTLsClair[]...
    .
    Donnera un tableau PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['MTLsClair'] = array(...);
    Bref, que cherches-tu à faire exactement ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonsoir,

    Je cherche à passer mes ID de mon formulaire à ma page de traitement afin de pouvoir faire un update...

    Exemple :

    ID Nom vetement Etat (type select)
    1 Jeans Propre
    2 Pull Sale
    3 Chaussette Sale

    ====>Bouton valider
    Page de traitement :

    UPDATE SET ETAT = 1 WHERE Idvetement = 1
    UPDATE SET ETAT = 2 WHERE Idvetement = 2
    UPDATE SET ETAT = 2 WHERE Idvetement = 3*

    Voilà ce que je cherche à faire.

  4. #4
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    On en revient aux tableaux HTML donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    affichage:
    boucle {
        echo '<select name="MTLsClair['.$id.']" >'...
    }
    Pour au final:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($_POST['MTLsClair'] as $id => $etat) {
     
        $id = nePasOublierDeProteger($id);
        $etat= nePasOublierDeProteger($etat);
     
        $sql = "UPDATE SET `ETAT` = '".$etat."' WHERE `Idvetement` = '".$etat."';";
    }
    La fonction "nePasOublierDeProteger" peut être un mysql_real_escape_string

Discussions similaires

  1. Pb de mise à jour de liste déroulante
    Par yael44 dans le forum IHM
    Réponses: 2
    Dernier message: 11/11/2009, 11h35
  2. Mise à jour de liste déroulante
    Par Lou17 dans le forum IHM
    Réponses: 3
    Dernier message: 10/09/2008, 10h27
  3. [AJAX] Mise à jour conditionnelle listes déroulantes
    Par gscorpio dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 14/08/2008, 16h02
  4. Mise à jour à partir liste déroulante
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 12/05/2006, 15h13
  5. pb de mise a jour de liste Déroulante !
    Par Fredri dans le forum Access
    Réponses: 9
    Dernier message: 11/01/2006, 17h27

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