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écupérer des cases a cocher dans une boucle ''for''


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut Récupérer des cases a cocher dans une boucle ''for''
    bonjour (je suis nouveau, donc si j'utilise a tord ce forum, n’hésitez pas a me corriger, merci)

    je suis en train d'apprendre php,

    sur une première page php j'ai des cases a cocher:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <p>indiquez ce que vous aimez : <br />
     
    		<input type="checkbox" name="food[]" value="frite" id="frite" /> <label for="frite">frite</label><br />
     
    		<input type="checkbox" name="food[]" value="steak" id="steak" /> <label for="steak">steak</label><br />
     
    		<input type="checkbox" name="food[]" value="epinard" id="epinard" /> <label for="epinard">epinard</label><br />
     
    		<input type="checkbox" name="food[]" value="ravioli" id="ravioli" /> <label for="ravioli">ravioli</label>
    </p>

    et j'aimerai recuperer a l'aide d'une boucle la/les cases coches sur une 2eme page php cible. avec une boucle foreach j'y parvient, mais j'aimerai le faire avec une boucle ''for'' (juste pour m'entrainer) mais alors la je rame depuis 2 jours....

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <p>
    	<?php 
    	if (isset($_POST['food']) AND is_array($_POST['food']))
    	{
    		for($food=0; $food<4; $food++)
        	{
            	echo $food . ' <br />';
        	}
    	}
    	else
    	{
    		echo 'il faut cocher une case au moins';
    	}
    	?>
    </P>

    si quelqu'un peut me corriger...... sur ce coup la je suis nul, je sais.... désolé.... merci.

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for($i=0; $i < count($food); $i++)
    {
        echo $food[$i] . ' <br />';
    }

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    merci pour votre reponse,

    malheureusement cela ne marche toujours pas, j'ai coder ainsi:

    code php:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <p>
    	<?php 
    	if(isset($_POST['food']) AND is_array($_POST['food']))
    	{
    		for($i=0; i < count($food); $i++)
    		{
    		    echo $food[i] . ' <br />';
    		}
    	}
    	else
    	{
    		echo 'cochez au moins une case';
    	}
    	?>
    </p>

    cela affiche : ''cochez au moins une case"..... ?? (quel que soit le nombre de case que je coche !!!)

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bonjour. $_POST['food'] est une variable (qu'il connait).
    $food? D'où sort-elle ? Et tu n'as pas de message d'erreur qui te dit en anglais qu'il ne connaît pas $food ? Il faut les activer.
    Question subsidiaire : pourquoi tiens-tu à tester que $_POST['food'] est un array ? Quelle chance as-tu qu'un input "checkbox[]" ne soit produise pas un array ?

    Je te propose donc ceci, qui fonctionnera si tu ajoutes des items à ta checkbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php 
    if (! empty($_POST['food']))
    {
      for($i=0; $i<count($_POST['food']); $i++)
      {
        echo $_POST['food'][$i] . ' <br />';
      }
    }
    else
    {
      echo 'il faut cocher une case au moins';
    }
    ?>
    Traduire ainsi :
    Si la variable existe et contient vraiment quelque chose
    pour i égal 0, i inférieur au nombre de lignes dans le tableau, incrémente
    affiche la valeur de chaque ligne
    Sinon
    affiche il faut cocher.

    question pédagogique : à ton avis, combien vaudra i après la boucle ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    merci pour les clairs explications dentrite,

    apres la boucle i devrait valoir 3, puisqu'il y a 4 lignes et que la premiere correspond a 0....???

    excuse moi encore pour mon ignorance, mais que signifie ''rajouter des items a ma checkbox'' ?

  6. #6
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Fais echo $i; après la boucle...
    rajouter des items a ma checkbox
    Ben si côté formulaire, tu rajoutes "salade, tomates, oignons" ? Ton code restera réutilisable côté récupération de formulaire... Le meilleur code est souvent le moins figé. Tu n'auras pas toute ta vie 4 choix gravés dans le marbre. Tu avais mis 4 en dur, et bonjourAjax t'a proposé un code plus souple.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/12/2016, 15h07
  2. Réponses: 6
    Dernier message: 10/01/2013, 11h07
  3. [Batch] Modification des paramètres d'entrée dans une boucle FOR
    Par reppier dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 15/06/2009, 15h23
  4. declarer des functions de boutons dans une boucle for
    Par superleon dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 06/06/2009, 12h24
  5. [PHP 5.2] Case à cocher dans une boucle
    Par philippef dans le forum Langage
    Réponses: 3
    Dernier message: 10/12/2008, 02h19

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