Menu

Je craque: html-php case à cocher + sélection [Résolu/Fermé]

- - Dernière réponse :  franck - 21 août 2006 à 22:43
Bonjour,

je craque !!!!! j'ai créé un formulaire html avec un traitement php (envoie par mail de tous les champs, malheureusement les cases à cocher ainsi que le menu déroulant (sélect) je n'arrive pas à l'intégrer dans le corps du mail comme le reste sans erreursss

voici le code htm

<form name="repas" action="traitement2.php" method=POST onSubmit="return verification()">
    <table width="978" border="0" align="center">   
    <tr>
      <td width="122"><span class="style6">Sélectionner :</span></td>
      <td width="330"><select name="Selection" id="Selection" tabindex="7">
        <option  selected>Sélectionner</option>
        <option>viande
        <?php if($Sélection=="viande"){echo " selected";} ?>
        </option>
        <option>poisson
        <?php if($Sélection=="poisson"){echo " selected";} ?>
        </option>
        <option>dessert
        <?php if($Sélection=="dessert"){echo " selected";} ?>
        </option>
        <option>fruit
        <?php if($Sélection=="fruit"){echo " selected";} ?>
        </option>
      </select></td>
      <td width="46"> </td>
      <td width="102"><span class="style6"><input type="checkbox" name="quand[]" option value="matin" class="case" > 
      matin</span><br></td>
      <td width="288"> </td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
      <td> </td>
      <td colspan="2"><span class="style6"><input type="checkbox"  name="quand[]" class="case" option value="autour d´un / du déjeuner"> 
      autour d´un / du déjeuner</span></td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
      <td> </td>
      <td><span class="style6"><input type="checkbox"  name="quand[]" option value="l´après-midi" class="case"> 
      l´après-midi</font></span><br></td>
      <td> </td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
      <td> </td>
      <td><span class="style6"><input name="quand[]" type="checkbox" option value="le soir" class="case"> 
      le soir </font><br></span></td>
      <td> </td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
          <td> </td>
      <td><span class="style6"><input type="checkbox"  name="quand[]" option value="heure" class="case"> 
      une heure : </font></span><br></td>
      <td><span class="style6"><input name="heure" value="23h59" size="6"  maxlength="6" class="formulaire2" tabindex="10"></font></span></td>
    </tr>
    <tr>
        <td></td>
    <td  align="right" bgcolor="#000000"><input name="submit" type="submit" value="Envoyer">      </td>   
    <td></td>
        <td align="left"><input name="reset" type="reset" value="Effacer"> <a name="ex" target="_blank">
         
      </tr>
    </table>
  </form>


voici le code php
if (isset($_POST['quand'])) {
   
    for ($i = 0, $c = count($_POST['quand']); $i < $c; $i++) { echo "<br/><b>" .$_POST['quand'][$i]. "</b>";  }} 


ca s'affiche à l'écran mais pas dans le mail ;o(( et ca marche pas pour sélection ;o(((

vous remerciant par avance de votre aide, n'ayant déjà plus beaucoup de cheveux

merci d'avance
Afficher la suite 

7 réponses

Meilleure réponse
4
Merci
Mister_S > pas besoin de faire ça, ça fonctionne très bien en laissant seulement []

Pour les checkox c'est <input type="checkbox" checked>, pas besoin de mettre option

Dire « Merci » 4

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 46947 internautes nous ont dit merci ce mois-ci

Je ne voudrais par paraître désobligeant mais ca ne marche toujours pas :o(((

même avec vos deux méthodes mon mail est toujours vide du résulatat des cases à cochés

Cdt
Darshu
Messages postés
306
Date d'inscription
lundi 30 janvier 2006
Dernière intervention
3 avril 2008
85 -
Salut.

J'ai déja fait ce genre de truc, et quand tu utilises un tableau comme tu le fais, il faut faire une petite manip que voila (avec <INPUT TYPE="checkbox" NAME="quand[]" VALUE="toto">) :
$tab_quand = $_POST['quand']; //$tab_quand est un tableau, attention !!!!
foreach($tab_quand as $quand)
{
    echo $quand.' ';
}
Voila, tu n'as plus qu'à prendre exemple sur ce que je t'ai mis pour en faire le traitement souhaité. Par exemple, si tu souhaites récupérer tous les "quand" dans une seule variable, tu peux faire $message = "" et dans ton foreach : $message .= $quand
1
Merci
C'est <option value="..." selected>
Je te remercie, petite question bébette je morceau de code je le mets où
te remerciant encore
finalement c'est tout bon pour le menu déroulant (sélection) malheureusement le problème reste entier pour les cases à cocher, à la place d'avoir les valeurs qui ont été cochées j'obtiens "ARRAY"

Merci de m'aider
1
Merci
Ou implode('', $_POST['quand'])
Messages postés
164
Date d'inscription
mardi 28 décembre 2004
Dernière intervention
13 février 2010
71
1
Merci
Hey, bonsoir je dirais!

Je n'ai pas de grande connaissanes en php, mais ce lien <url>http://www.toulouse-renaissance.net/c_outils/c_formulaire.htm </url>m'a permis de faire mon petit formulaire!

Et sans trop chippoter!

Bien à toi!
> Darshu
Messages postés
306
Date d'inscription
lundi 30 janvier 2006
Dernière intervention
3 avril 2008
-
voila


$items = 5;
for ($i = 1; $i <= $items; $i++) { $texte.= "$quand[$i], "; }

encore merci de ton aide

cordialement
Utilisateur anonyme > franck -
L'indexation d'un tableau commence à 0.
Darshu
Messages postés
306
Date d'inscription
lundi 30 janvier 2006
Dernière intervention
3 avril 2008
85 > Darshu
Messages postés
306
Date d'inscription
lundi 30 janvier 2006
Dernière intervention
3 avril 2008
-
Ca me parait OK ... Est-ce que tu as bien pensé à initialiser $texte avant ta boucle for ? Avec $texte = "" par exemple.

Enlève les guillemets autour de $quand[$i], bref ça donnerait :
for ($i=0; $i < $items; $i++)
    $texte .= $quand[$i];
A noter : on compte TOUJOURS à partir de 0 en PHP (et en C,C++,Python ...) et non de 1. Les accolades dans ce cas la ne servent à rien : après un for, un if, un elif, un else ou un while, si il n'y a pas d'accolades, PHP considère que seule la première ligne qui suit est à traiter, et place donc automatiquement et "virtuellement" une paire d'accolades sur la première ligne qui suit la structure conditionnelle. Ca permet de gagner un peu de clarté ;)
> Darshu
Messages postés
306
Date d'inscription
lundi 30 janvier 2006
Dernière intervention
3 avril 2008
-
MILLES MERCI A TOUT LE MONDE, projet presque bouclé car il me refuse dans traitement de faire un espace entre chaque éléments cochés , dois-je le faire sous html?

ENCORE MILLE MERCI
Darshu
Messages postés
306
Date d'inscription
lundi 30 janvier 2006
Dernière intervention
3 avril 2008
85 > Darshu
Messages postés
306
Date d'inscription
lundi 30 janvier 2006
Dernière intervention
3 avril 2008
-
Sinon tu peux forcer l'espacement avec   (Non Breaking SPace). Soit $texte .= $quand[$i]." ";
1
Merci
Essaie ça et seulement ça (pas de boucle for).
$texte = implode(' ', $quand);
1
Merci
CA MARCHE !!!!

MILLE MERCI, a tous

Merci
Messages postés
3
Date d'inscription
jeudi 17 août 2006
Dernière intervention
18 août 2006
2
0
Merci
Bonjour
si je peux me permettre tu le mets à la place de <option selected> sur la 7eme ligne que l'on voit de ton code
Merci Mister_S

Par contre pour moi le mystère reste entier pour les cases à cocher, cela me renvois "ARRAY" et je ne sais pas comment faire pour avoir la ou les valeurs cochées

merci de ton aide

Cdt
Mister_S
Messages postés
3
Date d'inscription
jeudi 17 août 2006
Dernière intervention
18 août 2006
2 -
c'est normal !
dans ton fichier de formulaire au lieu de mettre
...<input type="checkbox" name="quand[]" option value="matin" cl...

mets plutôt :
...<input type="checkbox" name="quand[0]" option value="matin" cl...


et incremente les autres aussi !
input type="checkbox"  name="quand[1]" class="case" opti