Ne pas afficher les champs vides

Fermé
metis15 Messages postés 466 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 27 novembre 2020 - 21 juin 2008 à 16:13
metis15 Messages postés 466 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 27 novembre 2020 - 21 juin 2008 à 17:17
Bonjour,
j'utilise le script suivant pour envoyer sur un email, mes données des champs, mais il va y avoir environ 100 champs quand j'aurai fini, dont 90 questions "boite à cocher".

Comment faire pour que les champs vides ne soient pas envoyés..?

Si possible, soyez sympa de me donner le code car je suis nullissime en codage et je n'arrive à rien juste avec les grandes lignes...(;o)))))))

envoi.php :
<?php 
extract($_POST,EXTR_OVERWRITE);

if(isset($_POST['captchaResult']))
{
	session_start();
	$_POST['captchaResult'] = strtolower($_POST['captchaResult']);
	$_SESSION['captchaResult'] = strtolower($_SESSION['captchaResult']);
	
	if($_POST['captchaResult'] === $_SESSION['captchaResult'])
	{
		//captcha OK on envoi le message
		$msg = "Nom :\t$nom\n";
		$msg .= "Adresse :\t$adresse\n";
		$msg .= "E-mail :\t$email\n";
		$msg .= "Téléphone :\t$telephone\n";
		$msg .= "Mobile :\t$mobile\n";
		$msg .= "Profession :\t$profession\n";
		$msg .= "Objet :\t$textarea\n";
		$msg .= "demande pour :\t$cb01\n";
		$msg .= "demande pour :\t$cb02\n";
		$msg .= "demande pour :\t$cb03\n";
		$msg .= "demande pour :\t$cb04\n";
		$msg .= "demande pour :\t$cb05\n";
		$msg .= "demande pour :\t$cb06\n";
		$msg .= "demande pour :\t$cb07\n";
		$msg .= "demande pour :\t$cb08\n";
		$msg .= "demande pour :\t$cb09\n";
		$msg .= "demande pour :\t$cb10\n";
		$msg .= "demande pour :\t$cb11\n";
		$msg .= "demande pour :\t$cb12\n";
		$msg .= "demande pour :\t$cb13\n";
		$msg .= "demande pour :\t$cb14\n";
		$recipient = "machin@machin.fr";
		$subject = "Formulaire de rendez-vous";
		$mailheaders = "From: Machin<> \n";
		$mailheaders .= "Reply-To: machin@machin.fr\n";
		$mailheaders .= "Bcc: machin@machin.fr\n\n";
		mail($recipient, $subject, $msg, $mailheaders);
		include("merci.php");
	}
	else
	{
		//captcha faux
include("erreur.php");
	}
}
?>

1 réponse

Utilisateur anonyme
21 juin 2008 à 16:29
Si j'ai bien compris, tu veux éviter d'envoyer les champs $cbxx qui sont vides (avec xx de 0 à 99 ?).
Donc c'est très simple, tu vas faire une boucle for sur tous les champs et tester avec un if s'il est vide ou pas. Si c'est pas le cas, tu ajoutes le champ au message.
https://www.commentcamarche.net/contents/1351-php-introduction
0
metis15 Messages postés 466 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 27 novembre 2020 11
21 juin 2008 à 16:49
Je cite : "tu veux éviter d'envoyer les champs $cbxx qui sont vides (avec xx de 0 à 99 ?). "

Oui, c'est ça.
Mais les champs en fait, sont des case à cocher.
Donc si la boite est cocher, ça envoie "oui" en face de la question, sinon, la question reste sans réponse.

Les boites sont de la forme :
<input class="input_cb" type="checkbox" id="cb15" name="cb15" value="oui" />&nbsp;Quetion1<br />
<input class="input_cb" type="checkbox" id="cb16" name="cb16" value="oui" />&nbsp;Question2<br />
<input class="input_cb" type="checkbox" id="cb17" name="cb17" value="oui" />&nbsp;Question3<br />
<input class="input_cb" type="checkbox" id="cb18" name="cb18" value="oui" />&nbsp;Question4<br />
etc.


Donc là, j'ai une valeur "oui" qui est toujours présente...

Si toi ou quelqu'un avait la patience de m'écrire ce qu'il faut, ça m'arrangerait bien(;o))))))))
Mille mercis.
0
Utilisateur anonyme > metis15 Messages postés 466 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 27 novembre 2020
21 juin 2008 à 16:53
Et qu'est-ce que tu appelles "champ vide" ?
0
metis15 Messages postés 466 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 27 novembre 2020 11 > Utilisateur anonyme
21 juin 2008 à 17:05
Oui, en fait je me suis mal exprimé, je voulais plutôt dire "si la boite n'est pas cochée, on envoie pas la ligne"...
C'est assez différent.

Et je ne sais pas écrire en PHP.
0
Utilisateur anonyme > metis15 Messages postés 466 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 27 novembre 2020
21 juin 2008 à 17:08
Ok, donc en fait pour chaque champ tu testes si la valeur est oui ou non et tu ajoutes à $msg en fonction.

Et je ne sais pas écrire en PHP.
C'est pas un souci, tu peux commencer avec le lien plus haut, bonne lecture.
0
metis15 Messages postés 466 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 27 novembre 2020 11 > Utilisateur anonyme
21 juin 2008 à 17:17
Tu es très sympa, mais ça fait bien 25 ans que j'essaye d'apprendre différent langage et ça s'arrête en général avant la page 10...(;o)))))

Et là, j'ai besoin de cette bidouille...
Je ne vais pas me lancer dans l'apprentissage du PHP.

Donc si une bonne âme peut m'écrire le bout de code qui va bien je prends, sinon ça restera comme ça ! (;o)))))
0