Demande d’explication

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 ????????????

1 réponse

  1. Modérateur
    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;
            }
      }
    }