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 :

Problème sur les selects multiples


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Problème sur les selects multiples
    Bonjour,

    pour la récupération des valeurs dans un champ à multiple sélection, j'ai vu que nous devons utiliser : foreach($variable as $elem) {echo $elem.'<br/>' ;}

    Pouvez-vous m'aider à adapter cette fonction dans mon code svp ?

    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
     
      $form = new Form ("post","page.php");
     
      $form->debutTable();
     
    if ($mode == INSERTION)
        {
          $communeDefaut = "Basse-Pointe"; $musicosDefaut = "Accordéon";
          $styleDefaut =  "Africain";
     
        }
      else 
        {
      $communeDefaut = $_POST['commune']; $musicosDefaut =  $_POST['musicos'];
      $styleDefaut =  $_POST['style'];
        }
     
      $form->champListe1Select ("Ma commune", "commune", $communeDefaut, 3, $liste_communes); 
      $form->champListeSelectMultiple ("Je pratique", "musicos", $musicosDefaut, 5, $liste_musicos);  
      $form->champListeSelectMultiple ("Genre musical", "style", $styleDefaut, 5, $liste_styles);  
     
      $form->finTable();
      if ($mode == MAJ) $form->champValider ("Mettre à jour", "maj");
      else              $form->champValider ("Inscrire","insere");
     
      echo $form->formulaireHTML();
    else
    {
    $communeDefaut = $_POST['commune'];
    $musicosDefaut = ?
    $styleDefaut = ?
    }

    Merci !

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    tu affiches toi-même la réponse : foreach($variable as $elem) {echo $elem.'<br/>' ;}.
    Sur quel point veux-tu que l'on t'aides ?
    On ne sait pas en plus, à quoi correspond ta classe Form donc ...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    oui je vous apporte + d'infos sur mon code

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    function FormMembres ($mode, $inter, $bd) 
    {
           // Recherche de la liste des communes pour la liste déroulante
      $resultat  = $bd->execRequete ("SELECT nom FROM Commune");
      while ($commune = $bd->objetSuivant ($resultat))
      $liste_communes[$commune->nom] = $commune->nom;  
     
    	// Recherche de la liste des musicos pour la liste déroulante
      $resultat  = $bd->execRequete ("SELECT nom FROM Musicos");
      while ($musicos = $bd->objetSuivant ($resultat))
      $liste_musicos[$musicos->nom] = $musicos->nom;  
     
           // Recherche de la liste des stylespour la liste déroulante
      $resultat  = $bd->execRequete ("SELECT nom FROM Style");
      while ($style = $bd->objetSuivant ($resultat))
      $liste_styles[$style->nom] = $style->nom;  
     
     
      // Caractères spéciaux HTML
      foreach ($inter as $nom => $valeur)
        $inter[$nom] = htmlSpecialChars($inter[$nom]);
     
      // Instanciation du formulaire
      $form = new Formulaire ("post","page.php");
     
      // Formulaire en mode table, vertical 
      $form->debutTable();
     
      if ($mode == INSERTION)
        {
          $communeDefaut = "Basse-Pointe"; $musicosDefaut = "Accordéon";
          $styleDefaut =  "Africain";
         }
      else 
        {
      $communeDefaut = $inter['commune']; $musicosDefaut = $inter['musicos'];
      $styleDefaut =  $inter['style'];
        }
     
      $form->champListe ("Ma commune", "commune", $communeDefaut, 3, $liste_communes); 
      $form->champListeMulti ("Je pratique", "musicos", $musicosDefaut, 5, $liste_musicos);  
      $form->champListeMulti ("Genre musical", "style", $styleDefaut, 5, $liste_styles);  
     
      $form->finTable();
      if ($mode == MAJ) $form->champValider ("Mettre à jour", "maj");
      else              $form->champValider ("Inscrire","insere");
     
      // Affichage du formulaire
      echo $form->formulaireHTML();
    }

    J'ai une erreur de syntaxe au niveau de :
    else
    {
    $communeDefaut = $inter['commune']; $musicosDefaut = ici
    $styleDefaut = ici
    }
    Comment faire pour que mes selections multiples soient prises en compte dans ma base de donnée
    Je bloque sur ça...

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Alors déjà utilise plutôt htmlspecialchars putôt que htmlSpecialChars.
    Ensuite essaie ceci peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if ($mode == INSERTION)
    {
      $communeDefaut = "Basse-Pointe"; $musicosDefaut = "Accordéon";
      $styleDefaut =  "Africain";
    }
    else 
    {
       foreach ($inter as $nom => $valeur)
      {
        echo $nom.' => '.$valeur; //je fais un echo mais tu fais ce que tu veux avec.
      }
     
    }

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Merci pour le htmlspecialchars

    par contre pour le foreach, cela ne fonctionne toujours pas..
    peut-être que tu comprendras mieux ce que je souhaite faire en regardant directement le site test?

Discussions similaires

  1. j'ai un problème sur les hinstances
    Par ramaro dans le forum C++
    Réponses: 9
    Dernier message: 26/02/2006, 14h32
  2. question simple sur les select dynamiques
    Par grinder59 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/01/2006, 15h53
  3. Problème de la selection multiple
    Par Muushi dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/10/2005, 02h53
  4. Clic sur les select multiple
    Par mic79 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/07/2005, 15h44
  5. [HTML] ReadOnly sur les <SELECT> ?
    Par nesbla dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/06/2005, 15h55

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