resultats checkbox indexées [résolu] - PHP - Programmation
Marsh Posté le 19-07-2004 à 12:01:48
ca vient d'ou ce on ?
Code :
|
Marsh Posté le 19-07-2004 à 12:11:44
simogeo a écrit : ca vient d'ou ce on ?
|
bah "on" c'est ce que m'affiche un echo $_POST["checktruc"][$i]; d'une case cochée.... J'ai essayée ta syntaxe, il n'entre pas dans la condition quelque soit le nombre de cases cochées ....
Marsh Posté le 19-07-2004 à 12:20:14
D'ailleurs c'est quoi cet opérateur "===" ??? Quand je met le "==" classique, ca rentre dans la condition mais avec les problèmes cités au premier post.
On dirait que le tableau n'est pas trié car !
|
resultats :
$_POST["case"][0] est à true (ou "on" aussi)
$_POST["case"][1] est à false
$_POST["case"][2] est à false
|
resultats :
$_POST["case"][0] est à true (ou "on" aussi)
$_POST["case"][1] est à true (ou "on" aussi)
$_POST["case"][2] est à false
|
resultats :
$_POST["case"][0] est à true (ou "on" aussi)
$_POST["case"][1] est à true (ou "on" aussi)
$_POST["case"][2] est à false
|
resultats :
$_POST["case"][0] est à true (ou "on" aussi)
$_POST["case"][1] est à false
$_POST["case"][2] est à false
Marsh Posté le 19-07-2004 à 12:34:36
boulax > je crois que tu n'as pas compris le fonctionnement
boulax a écrit : D'ailleurs c'est quoi cet opérateur "===" ??? Quand je met le "==" classique, ca rentre dans la condition mais avec les problèmes cités au premier post.
|
t'as compris maintenant ?
Marsh Posté le 19-07-2004 à 12:36:44
Le comparateur === est specifique aux valeurs booléennes et plus sécurisée.
Marsh Posté le 19-07-2004 à 12:39:53
ApheX_TwiN a écrit : Le comparateur === est specifique aux valeurs booléennes et plus sécurisée. |
non, mais il compare aussi le type
Code :
|
Marsh Posté le 19-07-2004 à 12:59:18
simogeo a écrit : boulax > je crois que tu n'as pas compris le fonctionnement
|
Désolé mais non, moi je n'ai pas ca.... j'ai pas inventé les resultats que j'ai mis hein... j'ai bel et bien "on" dans $_POST["case"][0] si je coche UNE case, quelque soit la case d'ailleurs.
( le test == true fonctionne mais le test ===true non ... )
Marsh Posté le 19-07-2004 à 13:03:42
Code :
|
t'as compris maintenant ?
Marsh Posté le 19-07-2004 à 13:05:02
simogeo a écrit : non, mais il compare aussi le type
|
oui, de même que
$var = 9 ;
$var == "9" --> true
$var === "9" --> false
Marsh Posté le 19-07-2004 à 13:07:31
JagStang a écrit : oui, de même que |
tootafé mr Toc
Marsh Posté le 19-07-2004 à 13:08:58
simogeo a écrit : tootafé mr Toc |
Marsh Posté le 19-07-2004 à 13:13:10
simogeo a écrit :
|
Serieux tu me prends pour une buse ou quoi ?
je recommence
Code :
|
Toujours avec mes trois cases
case 1 [X]
case 2 [ ]
case 3 [ ]
affichage :
Code :
|
case 1 [X]
case 2 [X]
case 3 [ ]
affichage :
Code :
|
case 1 [X]
case 2 [X]
case 3 [X]
affichage :
Code :
|
case 1 [ ]
case 2 [X]
case 3 [ ]
affichage :
Code :
|
case 1 [ ]
case 2 [ ]
case 3 [X]
affichage :
Code :
|
case 1 [ ]
case 2 [X]
case 3 [X]
affichage :
Code :
|
case 1 [X]
case 2 [ ]
case 3 [X]
affichage :
Code :
|
Alors je veux bien qu'il me mette que les cases cochées mais si je peu pas les avoir indexées ds le même ordre que la page je fais comment pour savoir lesquelles c'est mmm ?
Marsh Posté le 19-07-2004 à 13:23:06
ben si, t'es quand même un boulet
http://julp.developpez.com/php/formulaires/#5
t'as précisé les élements value à tes checkbox ?
sinon, bazarde ton code ici
Marsh Posté le 19-07-2004 à 13:29:09
simogeo a écrit : |
Non, allons nous peut etre avancer dans ce dialogue de sourds ?
Voila ca marche, je récupère les valeurs dans le tableau maintenant.
Merci
Marsh Posté le 19-07-2004 à 13:51:38
southpark inside
Marsh Posté le 19-07-2004 à 15:09:07
En fait ce qui se passe est très simple à comprendre :
Le navigateur n'envoie QUE les cases cochées donc si tu as 3 cases:
<input type="checkbox" name="box[]">Option 1<br>
<input type="checkbox" name="box[]">Option 2<br>
<input type="checkbox" name="box[]">Option 3<br>
et que tu coches les cases 1 et 3, ton script PHP reçois selement 2 variables, ce qui revient à écrire :
$_POST['box'][] = 'on';
$_POST['box'][] = 'on';
Ce qui est équivalent à ton problème. Mais avec les values, on s'en sort :
<input type="checkbox" name="box[]" value="1">Option 1<br>
<input type="checkbox" name="box[]" value="2">Option 2<br>
<input type="checkbox" name="box[]" value="3">Option 3<br>
Toujours avec les cases 1 et 3, c'est équivalent à :
$_POST['box'][] = 1;
$_POST['box'][] = 3;
L'autre solution, c'est de mettre les indices :
<input type="checkbox" name="box[0]">Option 1<br>
<input type="checkbox" name="box[1]">Option 2<br>
<input type="checkbox" name="box[2]">Option 3<br>
Et donc cette fois, plus de problème :
$_POST['box'][0] => 'on'
$_POST['box'][1] => n'existe pas
$_POST['box'][2] => 'on'
for ( $i=0; $i < 3; $i++ )
{
if( isset( $_POST["box"][$i] ) ) // case cochée car variables existe
{
//traitement, la case cochée est la numéro $i
}
}
Il faut juste savoir combien de cases à cocher il y a au départ. Mais ça en général tu le sais !
Marsh Posté le 19-07-2004 à 11:58:30
voila je retrouve plus un vieu post on l'on m'apprenait que l'on pouvait indexer des champs d'un formulaire en html pour récupérer les valeurs dans un tableau php.
J'aime bien ce concept, c'est pratique. Seulement j'ai constaté un problème assez génant lorsque j'ai des checkbox, quelque soit la case cochée, le tableau récupéré met à "on" la premiere checkbox
C'est a dire que si je fais:
- 0 cases cochées : ok
- 1 case cochée : "on" est sur la case d'indice 0
- N case cochées : idem
C'est moi qui débloque ou bien
Message édité par boulax le 19-07-2004 à 15:10:47
---------------
Posté depuis des chiottes, sales. Me gusta.