Php traitement checkbox
Fermé
margaux74
Messages postés
2
Date d'inscription
vendredi 28 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2007
-
28 déc. 2007 à 16:20
le père - 29 déc. 2007 à 09:36
le père - 29 déc. 2007 à 09:36
A voir également:
- Php traitement checkbox
- Easy php - Télécharger - Divers Web & Internet
- Traitement de texte gratuit - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
- Traitement texte pdf - Guide
- Ce traitement de texte gratuit et léger est idéal pour remplacer Word, même sur un vieux PC - Guide
3 réponses
Linblow
Messages postés
11
Date d'inscription
samedi 29 décembre 2007
Statut
Membre
Dernière intervention
3 novembre 2009
25
29 déc. 2007 à 08:55
29 déc. 2007 à 08:55
Il faut utiliser une boucle spéciale pour ça, voila :
if (isset($_POST['choice8']))
{
$score = 0; // Score obtenu jusqu'à présent
foreach ($_REQUEST['choice8'] as $valeur)
{
switch ($valeur)
{
case '0':
echo 'La mamelle : bonne réponse.<br />';
$score = $score + 1.5;
break;
case 1:
echo 'La pince : bonne réponse.<br />';
$score = $score + 1.5;
break;
case 2:
echo 'La sole : mauvaise réponse.<br />';
$score = $score - 1;
break;
case 3:
echo 'La fourchette : mauvais réponse.<br />';
$score = $score - 1;
break;
default: NULL;
}
}
echo 'Score total : '.$score;
}
A tous les coups, ça marche ; )
if (isset($_POST['choice8']))
{
$score = 0; // Score obtenu jusqu'à présent
foreach ($_REQUEST['choice8'] as $valeur)
{
switch ($valeur)
{
case '0':
echo 'La mamelle : bonne réponse.<br />';
$score = $score + 1.5;
break;
case 1:
echo 'La pince : bonne réponse.<br />';
$score = $score + 1.5;
break;
case 2:
echo 'La sole : mauvaise réponse.<br />';
$score = $score - 1;
break;
case 3:
echo 'La fourchette : mauvais réponse.<br />';
$score = $score - 1;
break;
default: NULL;
}
}
echo 'Score total : '.$score;
}
A tous les coups, ça marche ; )
margaux74
Messages postés
2
Date d'inscription
vendredi 28 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2007
28 déc. 2007 à 16:45
28 déc. 2007 à 16:45
Vous remarquerez que j'ai omis les "break" après chaque case de mon switch je l'avais fait exprès pour qu'il traite bien chaque case et non pas qu'il s'arrête dès qu'un est satisfait, je viens de voir dans un autre endroit du forum que cela peut être une erreur, j'ai donc retester en remettant les break : petite amélioration : si on répond juste tout va bien, tout ce que je veux s'affiche correctement. MAIS si on répond faux, l'affichage indique quand même que l'utilisateur à tout bon !
Si quelqun peut m'aider s'il vous plait ...
Si quelqun peut m'aider s'il vous plait ...
Bonjour
ça peut très bien marcher avec switch , moyennant quelques petites corrections.
Mais d'abord, je te vois utiliser $_POST['choice8'] indifféremment avec $choice8. Ce n'est pas la même variable. De deux choses l'une
. ou tu as register_globals à true dans ta configuration et là ça marche : des variables globales sont automatiquement crées pour chaque élement de $_POST, $_GET etc et c'est un énorme trou de sécurité. Dépêche toi de la mettre à false. Tu as sans doute trouvé des exemples de scripts qui marchent comme ça, il s'agit d'anciens scripts et aujourd'hui plus personne ne devrait faire ça.
. ou tu n' as pas register_globals à true et ta variable $choice8 n'a tout simplement aucun rapport avec $_POST['choice8']. Commence par corriger ce point, dans la suite je suppose que tu as fait toi même $choice8 = $_POST['choice8'].
J'en viens au fonctionnement du switch :
switch ($choice8 [$i]) et non pas switch ($i) et remet les break. si tu ne fais ton test que sur $i, et que ton visiteur a coché une seule check-box, n'importe laquelle, tu ne traiteras que la Mamelle
Avec le if ça ne peut pas marcher : tu compares un tableau $choice8 avec une valeur 'La Mamelle', etc... Un tableau ne peut pas être égal à une valeur seule. De plus, les valeurs renvoyées dans ton formulaire sont 0,1,2,3, et en aucun cas "la mamelle", "La pince" etc...
ça peut très bien marcher avec switch , moyennant quelques petites corrections.
Mais d'abord, je te vois utiliser $_POST['choice8'] indifféremment avec $choice8. Ce n'est pas la même variable. De deux choses l'une
. ou tu as register_globals à true dans ta configuration et là ça marche : des variables globales sont automatiquement crées pour chaque élement de $_POST, $_GET etc et c'est un énorme trou de sécurité. Dépêche toi de la mettre à false. Tu as sans doute trouvé des exemples de scripts qui marchent comme ça, il s'agit d'anciens scripts et aujourd'hui plus personne ne devrait faire ça.
. ou tu n' as pas register_globals à true et ta variable $choice8 n'a tout simplement aucun rapport avec $_POST['choice8']. Commence par corriger ce point, dans la suite je suppose que tu as fait toi même $choice8 = $_POST['choice8'].
J'en viens au fonctionnement du switch :
switch ($choice8 [$i]) et non pas switch ($i) et remet les break. si tu ne fais ton test que sur $i, et que ton visiteur a coché une seule check-box, n'importe laquelle, tu ne traiteras que la Mamelle
Avec le if ça ne peut pas marcher : tu compares un tableau $choice8 avec une valeur 'La Mamelle', etc... Un tableau ne peut pas être égal à une valeur seule. De plus, les valeurs renvoyées dans ton formulaire sont 0,1,2,3, et en aucun cas "la mamelle", "La pince" etc...