pb de checkbox et de include

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 : pb de checkbox et de include

par Reiji » 18 sept. 2005, 21:16

Je me permet de te répondre:
Oui et Non, en effet on peut faire les 2 manières sauf que lorsque l'on ajoute des [] ça va crée un tableau contenant les "values" des cases cochées donc il suffira de parcourir le tableau pour savoir quelles cases ont été cochées.

Si on ne met pas de [] il faudra donner un nom différent a toutes les cases a cocher donc plus fastidieux pour récuperer les cases cochées sur la page de traitement du formulaire.

Tu me dis si je me trompe Cyrano :wink:
Ah ouais, je connaissais pas cette synthaxe merci de l'info :) :)

par Truc » 18 sept. 2005, 21:09

Je me permet de te répondre:
Oui et Non, en effet on peut faire les 2 manières sauf que lorsque l'on ajoute des [] ça va crée un tableau contenant les "values" des cases cochées donc il suffira de parcourir le tableau pour savoir quelles cases ont été cochées.

Si on ne met pas de [] il faudra donner un nom différent a toutes les cases a cocher donc plus fastidieux pour récuperer les cases cochées sur la page de traitement du formulaire.

Tu me dis si je me trompe Cyrano :wink:

par Cyrano » 18 sept. 2005, 21:05

Non Reiji, parce que plusieurs champs du formulaire ont le même nom : en ajoutant les crochets [], on va récupérer automatiquement un tableau indexé comme je l'ai expliqué plus haut.

Si tu ne mets pas ces crochets, ton code html sera invalide et les résultats ne correspondront pas. Donc pour un champ unique, on ne met pas les crochets, pour plusieurs champs correspondant au même type de données dont on veut avoir 0 à n possibilités, on ajoutera les crochets :)

par Reiji » 18 sept. 2005, 21:01

Code : Tout sélectionner

<input name="option[]" type="checkbox" id="option" value="coloc"> colocation
Ca serai pas plutot :?: :

Code : Tout sélectionner

<input name="option" type="checkbox" id="option" value="coloc"> colocation

par Cyrano » 16 sept. 2005, 16:53

$i est l'index du tableau. Ce tableau ne contient que les cases qui ont été cochées. Donc $option[$i] correspond successivement à $option[0], $option[1], etc... jusqu'à ce qu'on ait atteint la fin du tableau. Or la valeur (attribut value de la balise <input ) correspond au nom du fichier. Il suffit donc de faire une concaténation de cette valeur avec l'extension ".htm"
Reprenons ton exemple:
<input name="option[]" type="checkbox" id="option" value="coloc"> colocation
<input name="option[]" type="checkbox" id="option" value="passhbgt"> passerelle h&eacute;bergement
<input name="option[]" type="checkbox" id="option" value="osm"> autre OSM</p>
Si on coche les trois cases, ce que je t'ai suggéré comme code va donc faire l'inclusion successive de $option[0].".htm", $option[1].".htm" et $option[2].".htm", ce qui va correspondre une fois traduit par PHP à l'inclusion de coloc.htm, passhbgt.htm et osm.htm

par philoult » 16 sept. 2005, 16:19

mais à quel moment tu definis quel fichier correspond à quel reponse de checkbox?
comment tu definis $i

par Cyrano » 16 sept. 2005, 16:16

Alors essaye ça:
<?php
if($option)
{
    for ($i=0; $i<count($option); $i++)
    {
        include $option[$i].".htm";
    }
}
?>

par philoult » 16 sept. 2005, 16:11

oui oui ça je le fait bien j'ai oublier de vous le noter.

par Cyrano » 16 sept. 2005, 16:09

Dans ta page 2, il faudrait commencer par récupérer la valeur envoyée depuis le formulaire.
$option = $_POST['option'];
Et là tu peux utiliser la variable option.

pb de checkbox et de include

par philoult » 16 sept. 2005, 16:03

bonjour,
j'ai plusieurs checkbox dont on peut en valider plusieurs, et le resultat me permet d'afficher plusieurs page htm diferent dans une même page avec une fonction include.

Voici le code des checkbox de la page 1:

<input name="option[]" type="checkbox" id="option" value="coloc"> colocation
<input name="option[]" type="checkbox" id="option" value="passhbgt"> passerelle h&eacute;bergement
<input name="option[]" type="checkbox" id="option" value="osm"> autre OSM</p>



ensuite le form envoi le resultat dans la page2
dont voici le code qui marche avec 1seul choix:

if($option) {


for ($i=0; $i<count($option); $i++) {
include "ajcoloc.htm";
}
}


Moi ce que je voudrais c'est si l'on choisi plusieurs checkbox dans la page1
que cela m'affiche dans la page2 les fichiers corespondants.

exemple la checkbox coloc correspond au fichier coloc.htm
la checkbox osm correspond au fichier osm.htm

etc etc etc.
mais j'y arrive pas.
Je pense qu'il faut rajouter des if mais mes essais ne sont pas du tout concluant.

Kiki veut bien m'aider??

Merci