Probleme de somme de plusieurs selects (PHP)

Résolu/Fermé
Vincent - Modifié par Vincent le 1/06/2011 à 19:26
 Vincent - 2 juin 2011 à 21:13
Bonjour,

je suis en détresse a propos d' un projet de php car un probleme se pose : je n' arrive pas à faire la somme des values de tous mes select.

Voici le code :
(vue)
[PHP]
$i = 0;
foreach($questionsUser as $question){
$q = $question['enonce_question'];
$id=$question['id_question'];
$r = $reponsesUser[$i];
echo 'Si j\'étais '.$q.', je serais '.$r['reponse'].'.<select name="num['.$id.']">
<option value="1">1</option><option value="2">2</option>
$i++;
}
/PHP (il y a en réalité des options allant de 1 a 10)

(module)
[PHP]
$cpt=0;
foreach($_POST['num'] as $val){
$cpt+=$val;
}
/PHP

Voici le probleme : mon name num[$id] devrait recevoir autant de valeurs que le nombre de questions. Or quand j' affiche le contenu du $_POST['num'], je ne reçois que la derniere itération. Ducoup mon compteur ne reçoit toujours qu' une seule valeur.

Comment faire pour que num reçoive toutes les réponses et pas seulement la derniere ?

Merci
A voir également:

1 réponse

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2011 à 23:17
Tu peux essayer ceci:
(vue)
[PHP]
$i = 0;
foreach($questionsUser as $question)
{
$q = $question['enonce_question'];
$id=$question['id_question'];
$r = $reponsesUser[$i];
echo 'Si j\'étais '.$q.', je serais '.$r['reponse'].'.<select name="num_'.$id.'">
<option value="1">1</option><option value="2">2</option>
$i++;
} 

(module)
[PHP] 
$cpt=0; 
foreach($questionsUser as $question)
{
$id=$question['id_question']; 
$cpt=$cpt+$_POST['num_'.$question[$id]];
}
1
Merci beaucoup, tu m' as mis sur la voie et j' ai fini par trouver :)


foreach($questionsUser as $question=>$id){
$cpt=$cpt+$_POST['num_'.$id['id_question']];
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
2 juin 2011 à 15:28
Problème résolu alors?
0
Oui tout à fait :) Merci
0