Demande d’explication

- - Dernière réponse : jordane45
Messages postés
26918
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2019
- 3 déc. 2019 à 15:09
Bonjour,
Svp, j’ai besoin d’explications. J’ai fait un formulaire avec plusieurs informations (ce fut avec votre aide même ????????????). Maintenant j’aimerai récupéré tous les donnés avec un seul submit. Voici le formulaire:

<input type="text" name="personne[1][nom]" value="Francois"> <br/>
<label><input type="checkbox" name="personne[1][profil][]" value ="courageux">Courageux</label> <br/>
<label><input type="checkbox" name="personne[1][profil][]" value ="gentil">Gentil</label> <br/>
<label><input type="checkbox" name="personne[1][profil][]" value ="ouvert">Ouvert</label> <br/>
 
<input type="text" name="personne[2][nom]" value="Alice"> <br/>
<label><input type="checkbox" name="personne[2][profil][]" value ="courageux">Courageux</label> <br/>
<label><input type="checkbox" name="personne[2][profil][]" value ="gentil">Gentil</label> <br/>
<label><input type="checkbox" name="personne[2][profil][]" value ="ouvert">Ouvert</label> <br/>
 
<input type="text" name="personne[2][nom]" value="Yohan"> <br/>
<label><input type="checkbox" name="personne[3][profil][]" value ="courageux">Courageux</label> <br/>
<label><input type="checkbox" name="personne[3][profil][]" value ="gentil">Gentil</label> <br/>
<label><input type="checkbox" name="personne[3][profil][]" value ="ouvert">Ouvert</label> <br/>

<input type="submit " value="Envoi "> <br/>
Je veux que pour chaque profile choisi , je puisse affiche le nom de la personne suivi de son profile , comme :
Francois : ouvert
Yohan : courageux
Francois : courageux
Alice : gentil
Yohan : ouvert
J’ai donc essayé le code de récupération suivant : foreach ($_POST[personne [profile] ]as
$P ) echo ‘$_POST[personne[nom]].’ ‘.$p.’<br/>’;

Mais on affiche l’erreur : Invalid argument provided to Foreach . Pouvez vous m’expliquer cela ?
Pourtant quand je met foreach ($_POST[personne[nom]] as $p ) { echo ‘$p.’ .’ $p [profile] ; } combiné à un “implode” j’arrive à afficher ça sans problème mais cela affiche :
Francois : sense, courageux
Alice : gentil , sensé .
Pourtant je ne veux pas récupérer ça de cette manière mais plutôt

Francois : ouvert
Yohan : courageux
Francois : courageux
Alice : gentil.

Éclaircissez moi svp ????????????
Afficher la suite 

1 réponse

Messages postés
26918
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2019
1907
0
Merci
Bonjour,

Commence par faire un print_r($_POST) et regarde ce que ça contient...
Tu y verras des array....

bref...

//on commence par récupérer PROPREMENT les variables AVANT de les utiliser !!!
$a_personnes = !empty($_POST['personne']) ? $_POST['personne'] : NULL;

// ensuite... on peut boucler sur chaque personne
if(!empty($a_personnes )){
  foreach($a_personnes  as $P){
    echo " nom : " . $P['nom'];
    // on récupère les profils :
    $a_profil = !empty($P['profil']) ? $P['profil'] : NULL;
    if(!empty($a_profil )){
         //on boucle sur les profils
         foreach(a_personnes  as $prof){
            echo $prof;
        }
  }
}


Commenter la réponse de jordane45