Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 10/12/2010, 10h51   #1
Nouveau Membre du Club
 
Inscription : octobre 2008
Messages : 172
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 172
Points : 25
Points : 25
Par défaut verification checkbox

Bonjour,

Je souhaite verifier en php si au moins un de mes checkboxs est cochée :

Source

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
 
<table width="60%" border="0" align="center">
  <tr>
    <td><span id="sprycheckbox1"><table width="100%" border="1">
      <tr>
        <td colspan="2"><div align="center"><em>GRUPO 1</em></div></td>
        </tr>
      <tr>
   		<td>1 KG BISTEC 1ª B</td>
        <td>
          <input type="checkbox" name="lote[]" id="lote1" value="1 KG BISTEC 1ª B"/>        </td>
      </tr>
 
      <tr>
   		<td>1 KG LOMO</td>
        <td><input type="checkbox" name="lote[]" id="lote2" value="1 KG LOMO"/></td>
      </tr>
      <tr>
   		<td>1 KG DE VACA</td>
        <td><input type="checkbox" name="lote[]" id="lote3" value="1 KG DE VACA"/></td>
      </tr>
      <tr>
   		<td>1 KG HAMBURGUESAS</td>
        <td><input type="checkbox" name="lote[]" id="lote4" value="1 KG HAMBURGUESAS"/></td>
      </tr>
      <tr>
   		<td>1 KG REDONDO ESPALDA</td>
        <td><input type="checkbox" name="lote[]" id="lote5" value="1 KG REDONDO ESPALDA"/></td>
      </tr>
      <tr>
   		<td>1 KG LLATA TERNERA</td>
        <td><input type="checkbox" name="lote[]" id="lote6" value="1 KG LLATA TERNERA"/></td>
      </tr>
            <tr>
   		<td>toto</td>
        <td><input type="checkbox" name="lote[]" id="lote7" value="toto"/></td>
      </tr>
      <tr>
   		<td>toto</td>
        <td><input type="checkbox" name="lote[]" id="lote8" value="toto"/></td>
      </tr>
      <tr>
        <td colspan="2">&nbsp;<span class="checkboxMinSelectionsMsg">Al menos un articulo en el grupo 1</span></span></td>
        </tr>
 
    </table>
Et le code php :

Code :
1
2
3
4
5
 
if(!($_POST['lote1']) && !($_POST['lote2']) && !($_POST['lote3']) && !($_POST['lote4']) && !($_POST['lote5']) && !($_POST['lote6']) && !($_POST['lote7']) && !($_POST['lote8'])){
	header("Location:index.php?e=4");
	break;
}
le probleme est meme en cochant une de ces cases, cela ne fonctionne pas, il me renvoie vers l'index. J'ai remplacé les ! par des EMPTY mais meme probleme.

Savez vous pourquoi ?
epoc.01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 10h59   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

tu dois récupérer un tableau de checkbox comme suit :


fais des tests en cochant et décochant et en affichant :

Code php :
1
2
3
echo '<pre>';
print_r($_POST['lote']);
echo '</pre>';

et un

Code php :
echo count($_POST['lote']);

pour savoir le nombre de cases cochées
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 11h23   #3
Nouveau Membre du Club
 
Inscription : octobre 2008
Messages : 172
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 172
Points : 25
Points : 25
Bonjour et merci de ta reponse,

Le seul probleme est que j'ai 4 fois ce tableau avec les memes id et dans chaque tableau je doit verifier si au moins une des cases est coché. J'ai deja un JS qui control mais souhaite integrer un deuxieme test plus fiable.

Tab 1 Tab2

lote1 lote9
lote2 lote10
lote3 lote11
lote4 .....
lote5
lote6
lote7
lote8
epoc.01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 11h31   #4
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Code php :
1
2
3
echo '<pre>';
print_r($_POST['lote']);
echo '</pre>';

t'affiche quoi ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 11h35   #5
Membre habitué
 
Avatar de Vicrabb
 
Femme Vinciane
Développeur Web
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Femme Vinciane
Âge : 29
Localisation : Belgique

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

Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 100
Points : 100
En fait, tu tentes de récupérer des données qui n'existent pas: $_POST['lote1'] suppose que tu tentes de trouver un input qui aurait comme nom lote1. Or, le nom de tes checkboxes est bien 'lote' sans numéro.

Si tu préfères, pour que $_POST['lote1'] marche, tu dois avoir, par exemple:

Code :
<input type="checkbox" name="lote1"/>
Si tu veux faire ta condition pour ne pas être renvoyé vers l'index:

Code :
1
2
3
4
if(!($_POST['lote'])){
	header("Location:index.php?e=4");
	break;
}
__________________

Symfony par une débutante - Elgg - PHP

Je suis peut-être diplômée en archéologie mais je ne fouille pas le net pour décrypter le langage SMS, pour lire du code sans la balise du même nom..
"The cake is lie" - Doug Rattman, Portal
Vicrabb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h50.


 
 
 
 
Partenaires

Hébergement Web