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éférence à une liste dont le nom est défini dynamiquement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut Référence à une liste dont le nom est défini dynamiquement
    salut à tous,
    je débute en php et je me heurte à un problème (de syntaxe ?...) qui me bloque depuis plusieurs jours maintenant.
    Je souhaite utiliser "switch" pour tester la valeur d'une liste dans un formulaire pour déclencher des update en sql en fonction de la valeur de la liste.
    J'ai utilisé dreamweaver toolbox pour contruire un formulaire dynamique qui me sert à faire mes insert et update.
    Mon soucis est que toolbox code le nom de la liste avec le nom du champ correspondant auquel il ajoute un n° ; ce qui donne ceci :

    <select name="ETATCANDIDATURE_<?php echo $cnt1; ?>" id="ETATCANDIDATURE_<?php echo $cnt1; ?>">

    Il procède de la sorte car il prévoit que l'on puisse faire l'édition simultanée de plusieurs enregistrements à la fois, d'où l'incrémentation ($cnt1 est un compteur).


    Est-ce quelqu'un sait comment faire référence à cette liste avec "switch" dans mon cas.
    J'ai essayé un tas de trucs.... sans succès....
    Voici les updates que je souhaite déclencher lorsque je valide mon formulaire :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    switch($_POST['référence à la liste à définir ici'])
    
    {
    case 'En cours':
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Recrutement' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break; 
    
    
    case 'Accepté':
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Inscrit' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break;
    
    
    case 'Refusé':
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Prospect' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break;
    
    
    case 'Liste Attente':
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Recrutement' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break;
    }
    ?>
    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    le problème ici est que tu $donnes un nom différent à chaque fois à ton select !

    met le même nom et test la valeur ;-)

    <select name="monNom">....</select>


    et tu test ton switch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    switch( $_POST["monNom"] ) {
       case "premierCas" : ... break;
       default : ; break;
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    le problème ici est que tu $donnes un nom différent à chaque fois à ton select !

    met le même nom et test la valeur ;-)

    <select name="monNom">....</select>


    et tu test ton switch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    switch( $_POST["monNom"] ) {
       case "premierCas" : ... break;
       default : ; break;
    }


    je viens de changer le nom dynamique d ela liste par un nom statique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="ETATCANDIDATURE1" id="ETATCANDIDATURE1">
    et j'ai changé mon switch :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
     
    switch($_POST['ETATCANDIDATURE1'])
     
    {
    case "En cours": 
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Recrutement' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break; // on referme cette condition
     
     
    case "Accepté":
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Inscrit' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break;
     
     
    case "Refusé":
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Prospect' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break;
     
     
    case "Liste Attente":
    $query = sprintf("UPDATE contact SET ETATACTUELCONTACT = 'Recrutement' WHERE NUMCONTACT ='%d'", $_GET['NUMCONTACT']) ;
    	mysql_query($query) or die(mysql_error());
    break;
     
    default : ; 
    break;
    }
    Le problème est qu'il ne se passe rien ; le formulaire est envoyé, je reviens sur ma liste de contacts et le statut du contact n'est pas mis à jour.....

    D'autres idées ??

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Tu donnes bien un valeur dans ton select ? et qui correspond bien à un des cas du switch() ?

  5. #5
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Ton formulaire utilise quelle "method" ?
    Si tes variables $_POST['ETATCANDIDATURE1'] et $_GET['NUMCONTACT'] proviennent du même formulaire je pense qu'il y a un petit problème ...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut
    Citation Envoyé par jumano Voir le message
    Ton formulaire utilise quelle "method" ?
    Si tes variables $_POST['ETATCANDIDATURE1'] et $_GET['NUMCONTACT'] proviennent dumê formulaire je pense qu'il y a un petit problème ...
    J'utilise la methode POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <form method="post" id="form1" action="<?php echo KT_escapeAttribute(KT_getFullUri()); ?>">
    POurquoi y'aurai-t-il un problème avec $_GET ?

    J'ai fait des test en construisant un formulaire de mise à jour plus simple à la mano et mon switch() fonctionne pafaitement.
    Par contre avec le dynamic form de toolbox..... ben çà coince..... mais je n'ai aucune erreur à l'écran ;

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    Tu donnes bien un valeur dans ton select ? et qui correspond bien à un des cas du switch() ?
    Oui :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <td><select name="ETATCANDIDATURE1" id="ETATCANDIDATURE1">
                    <option value="En cours" <?php if (!(strcmp("En cours", KT_escapeAttribute($row_rscandidature['ETATCANDIDATURE'])))) {echo "selected=\"selected\"";} ?>>En cours</option>
                    <option value="Accept&eacute;"Accepté <?php if (!(strcmp("Accepté", KT_escapeAttribute($row_rscandidature['ETATCANDIDATURE'])))) {echo "selected=\"selected\"";} ?>>Accepté</option>
                    <option value="Refus&eacute;"Refusé <?php if (!(strcmp("Refusé", KT_escapeAttribute($row_rscandidature['ETATCANDIDATURE'])))) {echo "selected=\"selected\"";} ?>>Refusé</option>
                    <option value="Liste Attente" <?php if (!(strcmp("Liste Attente", KT_escapeAttribute($row_rscandidature['ETATCANDIDATURE'])))) {echo "selected=\"selected\"";} ?>>Liste Attente</option>
                  </select>

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

Discussions similaires

  1. libellé d'une liste dont le nom est variable
    Par tom06440 dans le forum WinDev
    Réponses: 2
    Dernier message: 11/11/2007, 18h20
  2. Réponses: 6
    Dernier message: 08/02/2007, 14h41
  3. Réponses: 17
    Dernier message: 03/10/2005, 11h16
  4. [Reflection] Executer une fonction dont le nom est contenu dans un String
    Par christobal dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/07/2004, 15h23
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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