Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/07/2011, 22h26   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut lecture valeurs checkbox

Bonsoir,

une question de débutant : j'ai des checkbox dans un formulaire html :
Code :
<input type="checkbox" name="affich[]" value="a" />
et dans l'action, je voudrais en récupérer la valeur ; j'ai repris un code trouvé dans un post :
Code :
1
2
foreach ($_POST["affich"] as $index => $value){
   echo $index." :".$value."<br/>";
mais dans les $value, y a rien : qu'est-ce qui ne va pas ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 23h14   #2
Membre chevronné
 
Avatar de micetf
 
Homme Fred
Professeur des Ecoles
Inscription : mai 2009
Messages : 503
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Professeur des Ecoles
Secteur : Enseignement

Informations forums :
Inscription : mai 2009
Messages : 503
Points : 701
Points : 701
Bonsoir,
Pour moi, le problème est ailleurs que ce que tu nous montres.
En effet, tu peux tester le code ci-dessous :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if (isset($_POST['affich'])) {
	foreach ($_POST['affich'] as $cle => $val) {
		echo 'Indice case cochée : '.$cle." => Valeur : ".$val."<br/>";
	}
} else {
	echo "Vous n'avez coché aucune case";
}
?>
<form action="" method="post">
<input type="checkbox" name="affich[]" value="a" />
<input type="checkbox" name="affich[]" value="b" />
<input type="checkbox" name="affich[]" value="c" />
<input type="submit" value="GO"/>
</form>
Peut-être t'éclairera-t-il sur le fonctionnement des cases à cocher.
micetf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 23h50   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Oui, tu as clairement raison, vu que ton code marche et qu'il n'y a pas grosse différence avec le mien ; cela dit, ces checkbox sont dans un formulaire html qui contient d'autres champs, avec lesquels je n'ai aucun problème ; comme je ne vois pas où peut se trouver le problème, je mets ici le formulaire html en entier ainsi que le début de l'action :
Code :
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
   <form method="post" enctype="multipart/form-data" action="<?=$_SERVER["PHP_SELF"]?>">
        <fieldset>
        <table>
          <tbody>
          <tr>Si vous voulez que vos nom et pr&eacute;nom apparaissent dans l'annonce, merci de cocher.<br><br></tr>
            <tr>
              <td> <input value="fr" name="langue"
 type="hidden"></td>
              <td></td>
              <td></td>
            </tr>
            <tr><td><input type="checkbox" name="affich[]" value="a" /></td>
              <td>* Nom : </td>
              <td><input name="nom" size="40"
 type="text"></td>
              <td></td>
            </tr>
            <tr><td><input type="checkbox" name="affich[]" value="b" /></td>
              <td>* pr&eacute;nom : </td>
              <td><input name="prenom" size="40"
 type="text"></td>
              <td></td>
            </tr>
            <tr><td><input type="checkbox" name="affich[]" value="c" /></td>
              <td>* pseudo : </td>
              <td><input name="pseudo" size="40"
 type="text"></td>
              <td></td>
            </tr>
            <tr><td></td>
              <td>* cat&eacute;gorie : </td>
              <td><select name="cat">
              <option value="avis_rech">Avis de recherche</option>
              <option value="ret_ami">Retrouver un ami</option>
              <option value="ch_femme">Chercher une femme</option>
              <option value="ch_homme">Chercher un homme</option>
              <option value="rech_animaux">Chercher un animal</option>
              <option value="rech_objet">Chercher un objet</option>
              </select></td>
              <td></td></tr>
            <tr><td></td>
            <td>photo(s) attendre plusieurs secondes<br>   </td><td> <input type="hidden" name="MAX_FILE_SIZE" value="10485760"/><table><tr><td>1 <input type="file" name="photo1" accept="image/gif,image/jpeg,image/png" size="30"/></td></tr>
 
<tr><td>2 <input type="file" name="photo2" accept="image/gif,image/jpeg,image/png" size="30"/></td></tr><tr><td>3 <input type="file" name="photo3" accept="image/gif,image/jpeg,image/png" size="30"/></td></tr></table>           </td></tr>
           <tr><td> redimensionnement <br>des photos :</td><td align="right"> petit</td><td><input type="radio" name="dimphoto" value="150"/></td></tr>
           <tr><td></td><td align="right">grand</td><td><input type="radio" name="dimphoto" value="300"/></td></tr>
            <tr><td></td>
              <td valign="top">* Texte : </td>
              <td>			  <textarea id="editor1"  name="editor1"><p>Votre annonce .</p></textarea>
			  <script type="text/javascript">
	CKEDITOR.replace( 'editor1' );
</script></td>
              <td><b>Aidez-vous avec la liste ci-dessous :</b><br>
              <ul>
                <li>Nom / pr&eacute;nom de la personne
disparue. </li>
                <li>contexte de la disparition. </li>
                <li>date de la disparition. </li>
                <li>informations sur la personne disparue. </li>
                <li>derni&egrave;re nouvelle sur
la personne. </li>
                <li>personne &agrave; contacter.</li>
              </ul>
              </td>
            </tr>
            <tr>
              <td></td>
              <td><input value="Envoyer" type="submit"></td>
              <td></td>
            </tr>
          </tbody>
        </table>
        </fieldset>
      </form>
<?php
$aff_nom=$_POST['affich'][0];
$aff_prenom=$_POST['affich'][1];
$aff_pseudo=$_POST['affich'][2];
echo 'aff_pseudo='.$aff_pseudo.'<br>';
foreach ($_POST["affich"] as $index => $value){
   echo $index." :".$value."<br/>";
...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 06h40   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonjour,

Un checkbox n'est envoyé que si et seulement si il est coché.
Pourquoi tu utilises un name comme tableau or que tu veux utiliser chaque checkbox pour différent utilisation?
Utilise différent name puis teste avec la fonction isset pour savoir si le checkbox a été coché ou non.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 20h38   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
Pourquoi tu utilises un name comme tableau or que tu veux utiliser chaque checkbox pour différent utilisation?
Par habitude, mais même si je ne fais plus de tableau :
Code :
1
2
3
<input type="checkbox" name="affich1" value="1" />
$affich_prenom=(isset($_POST['affich1']))?1:0;
echo 'aff_prenom='.$aff_prenom.'<br>';
y a rien dans $aff_prenom alors que, si je coche, $_POST['affich1'] vaut bien 1 : quelle est mon erreur ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 22h54   #6
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
j'ai résolu le problème sans utiliser isset.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h24.


 
 
 
 
Partenaires

Hébergement Web