Probleme avec for/checkbox/foreach :(

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme avec for/checkbox/foreach :(

par twiggy » 19 avr. 2009, 23:10

quand je veux mettre $value dans result ça me marque: erreur
:'(

par Ryle » 19 avr. 2009, 18:02

Hmm... bizare.... site3, site4 et site5 correspondent aux clés de ton tableau, et c'est justement les clé de ton tableau que tu as spécifié dans l'attribut value de tes cases à cocher si tu as repris mon code....

Tu peux donc soit changer la valeur et mettre celle que tu veux ($value par exemple) ou simplement quand tu récupères la valeur site3, retrouver dans ton tableau la valeur qui lui est associée :)

par twiggy » 19 avr. 2009, 15:34

Ryle merci encore pour ton aide vraiment!
Effectivement Array a disparu mais un autre problème est la:'( :'(:'(:'(:'(:'(:'(:'(:'(:'(:'(
En fait maintenant il me met maintenant dans le résult:
site3
site4
site5

(par exemple)
alors qu'il aurait du me mettre le nom des sites:(
je suis désolé je sais que je suis vraiment mauvais mais on a un qu'un cours de 3h sur le PHP et on dois rendre se truc alors qu'on la même pas vu:( merci encore:(

par Ryle » 19 avr. 2009, 14:51

Bah oui, mais ça sert à rien de récupérer la clé du tableau, si tu continues à utiliser $sites comme valeur de ta checkbox ;)
foreach ($sites as $key => $value){  
        echo '<input type="checkbox" name="activites[]" id="activite" value="'.$key.'">'; 
        echo $value.'<br />'; 
}

par twiggy » 19 avr. 2009, 14:22

Merci Ryle pour ta réponse^^
alors j'ai compris se que tu m'a dis dans la théorie...Je ne sais pas comment l'appliquer en fait:(
se que j'ai fais ne marche toujours pas:(
voila mon code changer dans le forme
      
      foreach ($sites as $key => $value){ 
		echo '<input type="checkbox" name="activites[]" id="activite" value="'.$sites.'">';
        echo $value.'<br />';
      }
      
et effectivement $act correspond bien a " $_POST['activites'] "
merci de m'avoir aidé

par Ryle » 19 avr. 2009, 11:06

Modération :
twiggy, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ



Ton problème vient de la valeur que tu passes dans tes cases à cocher. En effet, $sites est un tableau. Si tu regardes le code source HTML généré, tu verras que toutes tes cases ont pour valeur Array() difficile dès lors de savoir laquelle a été cochée quand tu recois cette valeur ;)

Tu peux soit spécifier le libellé ($value) dans l'attribut valeur, soit utilisé la clé du tableau associatif. Pour cela, il te faut dans ton foreach, non seulement récupérer les valeurs, mais également les clés associées : foreach ($table as $key => $value).

En supposant ensuite que dans ton traitement $act corresponde bien à $_POST['activites'] (ou $_GET le cas échéant) ça devrait fonctionner :)

Probleme avec for/checkbox/foreach :(

par twiggy » 19 avr. 2009, 04:07

bonjour
je suis bloquée sur un GROS problème...Voila je suis en prépa dans une fac de "l'image"...et donc en prépa on touche un peu a tout...et la je suis en PHP et j'y comprend rien je dois rendre pour lundi un formulaire...Mais qui dit formulaire dit "result" et c'est justement lui qui me pause problème...Le PHP n'étant pas ma spécialité je deviens fou et je sature je comprend pas mon erreur :'(
si qqn pouvait m'aider...
Donc dans mon form j'ai du faire un tableau avec des checkbox qui est:
$sites=array("site1"=>"Site Agence de voyages","site2"=>"Site Comité Régional de tourime du Haut-Languedoc","site3"=>"Site Association sportive de Nogent","site4"=>"Site Club hippique de Nogent","site5"=>"Site Crédit Agricole","site6"=>"Site Crédit Lyonnais","site7"=>"Site Resto Bonne Bouffe");
foreach était imposée donc j'ai fais ça:
      foreach ($sites as $value){ 
		echo '<input type="checkbox" name="activites[]" id="activite" value="'.$sites.'">';
        echo $value.'<br />';
      }

tous s'affiche correctement...donc on coche ses fichu case et apres dans le result pour lire ses case j'ai fais se code
echo "<h1><p class='modif'>Impression en utilisant une boucle:</p></h1>";
for ( $i=0; $i<count($act); $i++) {
echo " ".$act[$i]."<br />";
}
} else {
echo "rien de s&eacute;lectionn&eacute;<br />";
}
et la il m'affiche "array" alors que moi je veux les phrase sélectionné dans le tableau du form...et je suis désespéré :'(


merci d'avance


HELP!!!