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 un tableau d'une liste de checkbox


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut récuperer un tableau d'une liste de checkbox
    Bonjour tous, j'ai un souci avec un truc tout simple.
    J'ai 5 cases à cocher avec les jours de la semaine, un truc de débutant quoi
    J'ai créer ma tite fonction avec une boucle pour récupérer toute les données, bien pris la peine de mettre dans name de joli crochet.
    Puis j'ai tester, alors la la récupération se fais à moitié, je n'ai qu'un élément de mon tableau.
    Bon c'est surement du au faites que j'ai créer une fonction que j'inclu dans une variable pour m'envoyer sa par email
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function prefTabs(){
    		foreach ($_POST['preferences'] as $choix) return $vPreferences[] = '<td class="Champs">'."Choix utilisateur : ".$choix.'</td>';
    	}
    je doit récupérer la fonction dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $body= '<table border="0" cellspacing="6">
    				     	  <tr>
    				            <td>Préférences :</td>'
    				            .prefTabs().
    				          '</tr>
    				          <tr>......
    Une idée ?
    Le html est simpliste aussi :
    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
    <table id="preferences" title="Jour">
                            <caption><strong>Jour</strong></caption>
                                <tr>
                                	<td>Lundi</td>
                                	<td><input type="checkbox" name="preferences[]" class="disponible" value="lundi" /></td>
                                <tr>
                                <tr>
                                	<td>Mardi </td>
                                	<td><input type="checkbox" name="preferences[]" class="disponible" value="mardi" /></td>
                                </tr>
                                <tr>
                                	<td>Mercredi </td>
                                	<td><input type="checkbox" name="preferences[]" class="disponible" value="mercredi" /></td>
                                </tr>
                                <tr>
                                	<td>Jeudi</td>
                                	<td><input type="checkbox" name="preferences[]" class="disponible" value="jeudi" /></td>
                                </tr>
                                <tr>
                                	<td>Vendredi </td>
                                	<td><input type="checkbox" name="preferences[]" class="disponible" value="vendredi" /></td>
                                </tr>
                            </table>

  2. #2
    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
    Bonjour,
    Et si tu fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    function prefTabs(){
    foreach ($_POST['preferences'] as $choix) 
    echo '<td class="Champs">'."Choix utilisateur : ".$choix.'</td>';
    }
    ?>

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    justement c'est ce que je ne voulais pas faire, le traitement est envoyer dans une variable nommé body qui elle même contient toute une page web .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function prefTabs(){
    		$vPreferences = array();
    		foreach ($_POST['preferences'] as $choix) 
    		$vPreferences[] = '<td class="Champs">'."Choix utilisateur : ".$choix.'</td>';
    		return $vPreferences; //implode(',', $vPreferences);
    	}
    Bon ici j'ai Array qui apparais donc y bien un souci
    Je pourrais utiliser la maniére simple mais si je le fais je doits tout recoder et ce n'est pas mon script (autre webmaster d'un client)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut Même problème
    Bonjour,
    Je ne suis pas un expert et avais le même problème: les tableaux ne passent pas après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach ($_POST as $key => $value) $$key = addslashes($value);
    foreach ($_GET as $key => $value) $$key = addslashes($value);
    ou pour une autre raison. Il faut se débrouller autrement: Déjà je n'utilise pas les fonctions:
    Appelez vos préférences:

    preferences_0
    preferences_1
    preferences_2 etc,

    au retour, rétablissez votre tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $preferences=array()
    $i="0";
    while($i<5){
    $n="preferences_".$i;
    if(isset($$n) && $$n == "on")$preferences[$i]=$$n;
    $i++;
    }
    J'ai ainsi traité des tableaux d'une centaine d'unités et cela fonctionne.
    Il y a certainement d'autres solutions plus scientifiques.
    Rodolphe

  5. #5
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Celle-ci fonctionne avec ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function prefTabs(){
     
    	foreach ($_POST['preferences'] as $choix){
     
    		$vPreferences[] = "<td class=\"Champs\">Choix utilisateur : ".$choix."</td>";
    	}
    	return $vPreferences;
    }

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/05/2007, 23h39
  2. [AJAX+PHP] Récupérer une liste de checkbox en tableau
    Par dorian53 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/04/2007, 10h03
  3. Réponses: 3
    Dernier message: 15/05/2006, 16h09
  4. [Excel]Ouvrir un tableau avec une liste modifiable
    Par mulot03 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/05/2006, 09h52
  5. Réponses: 12
    Dernier message: 02/05/2006, 19h37

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