checkbox dans une page contact

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 : checkbox dans une page contact

Re: checkbox dans une page contact

par jcvilleneuve » 20 juin 2011, 19:54

grâce à votre aide, je suis arrivé à ça

Code : Tout sélectionner

if (empty($_POST['Niveau'] )) { echo "<p class='alerte'><:escal:contact_alerte_checkbox:></p>"; $erreur=1; } else { $message.= "Niveau : "; $message.= implode('-',$_POST['Niveau']); }
Et c'est parfait !

Merci beaucoup.

Re: checkbox dans une page contact

par epommate2 » 20 juin 2011, 16:35

Un peu plus propre :
if (empty($_POST['Niveau'] )) {
    echo "<p class='alerte'>Vous n'avez pas précisé votre niveau.</p>";
    $erreur=1;
  } else {
echo "Niveau ". implode('-',$_POST['Niveau']);
}

Re: checkbox dans une page contact

par moogli » 20 juin 2011, 15:05

c'est une simple concaténation il faut ajouter le mot niveau à la variable message, et le tiret a chaque fois
<?php
if (empty($_POST['Niveau'] )) {
    echo "<p class='alerte'>Vous n'avez pas précisé votre niveau.</p>";
    $erreur=1;
  } else {
// je suppose que niveau est déclarée avant !
$message .= 'Niveau ';
foreach ($_POST['Niveau'] as $niveau) {
       $message.= $niveau .' - ';;
    }
// il faut supprimer les 3 derniers caractères avec la fonction substr. 
// a la limite il serait p'tet plus intéressant de tester dans la boucle si l'on est au dernier element du tableaux ou pas pour ajouter ou non le ' - ' !
}
?>
@+

Re: checkbox dans une page contact

par jcvilleneuve » 20 juin 2011, 13:38

Merci c'est déjà mieux.
Mais je voudrais que dans le mail, si 2 cases sont cochées, on obtienne par exemple
Niveau : Bon Correct
ou encore mieux
Niveau : Bon - Correct
alors que là j'ai
Bon Correct

Re: checkbox dans une page contact

par epommate2 » 20 juin 2011, 12:49

Tu dois d'abord vérifier que la clé 'Niveau' du tableau $_POST n'est pas vide.
Ensuite, tu peux l'utiliser.
if (empty($_POST['Niveau'] )) {
    echo "<p class='alerte'>Vous n'avez pas précisé votre niveau.</p>";
    $erreur=1;
  } else {
foreach ($_POST['Niveau'] as $niveau) {
       $message.= " ".$niveau;
    }
}
  

checkbox dans une page contact

par jcvilleneuve » 20 juin 2011, 11:16

Bonjour

Très grand débutant en php, je me heurte à un souci de checkbox dans une page contact.
Dans le formulaire, j'ai 5 lignes de ce type

Code : Tout sélectionner

<input type="checkbox" name="Niveau[]" value="Bon" size="30" <?php if ($_POST['Niveau']=='Bon') { echo 'checked="checked"'; } ?> />Bon
Ensuite, plus bas j'ai

Code : Tout sélectionner

$message.= "Niveau : "; foreach ($_POST['Niveau'] as $niveau) { $message.= " ".$niveau; } if (empty($niveau)) { echo "<p class='alerte'>Vous n'avez pas précisé votre niveau.</p>"; $erreur=1; }
Si une case est cochée, pas de souci.
Mais si aucune case n'est cochée, j'ai bien le message d'alerte mais j'ai aussi ce message d'erreur :

Warning: Invalid argument supplied for foreach() in /webdata/academie/escal/ecrire/public.php(174) : eval()'d code on line 140

Comment corriger cette erreur ?