Tableaux et case a cocher en php

Fermé
niou - 29 juil. 2008 à 14:49
 Utilisateur anonyme - 29 juil. 2008 à 16:36
Bonjour,

J'ai fais une liste déroulante. Quand je clique sur envoyer, j'ai un tableaux qui apparait.
Celui ci contient:
nom prenom ville adresse mail

Donc j'ai (par exemple):
Cresson Michel Paris cress@toto.fr
Pignot Pierre Lyon pignot@biiii.fr
etc....

Je voudrais ajouter une case a cocher afin de faire un envoi "groupé" de mail

Cresson Michel Paris cress@toto.fr case a cocher
Pignot Pierre Lyon pignot@biiii.fr case a cocher
etc....

Si la case est cochée, alors je récupère l'adresse mail (que je stockerai dans une bdd). Et après je veux faire l'envoi de mail:

Voici mon code, j'ai bien (au niveau visuel), ce que je veux:
<form  method="post" > 
....................
...................

Choix de la ville:
 // Je fais la requete pour obtenir la ville (pas important pour mon problème)
	<select name="path">
		<?php
		while ($donnees = mysql_fetch_array($reponse))
		{
			?>
			<option value="<?php echo $donnees['cp'];?>">

			<?php echo $donnees['cp'];?>
			</option>
			<?php
		}
		?>
	</select>

<input type="submit" value="Trier" />
</form> 

<?php

    // On récupére le numéro de département:
	$dpt=$_POST['path']; 
	
	echo "dpt=";
	echo $dpt;
	?>
	<!--Création d'un tableaux qui va contenir les différents renseignements  -->
	<table width="100%" border="0" cellpadding="2" cellspacing="0" style="background:#F8F8F8;border-bottom:1px solid #cccccc;">
	<tr>
		<td width="10%"><b><font color="#0a14eb">Nom</font></b></td>
		<td width="10%"><font color="#0a14eb"><b>Prénom</b></font></td>
		<td width="20%"><font color="#0a14eb"><b>Ville</b></font></td>
		<td width="15%"><font color="#0a14eb"><b>Adresse</b></font></td>
		<td width="10%"><font color="#0a14eb"><b>Téléphone</b></font></td>
		<td width="30%"><font color="#0a14eb"><b>Mail</b></font></td>
		<td width="5%"><font color="#0a14eb"><b>Code Postal</b></font></td>
		<td width="5%"><font color="#0a14eb"><b>Ajout Mailing</b></font></td>
	</tr>
	<?
	
	// On sélectionne tous les renseignements concernants les enquêteurs :
	$res = mysql_query("SELECT * FROM matable where cp='$dpt'");
	?>
       <form  method="post">
       <?
	while ($row = mysql_fetch_array($res))
	{
		?>			<?
			$test=$row['email'];
			?>
		<tr>
			<td><? echo $row['nom'];?></td>
			<td><? echo $row['prenom']; ?></td>
			<td><? echo $row['ville']; ?></td>
			<td><? echo $row['adresse']; ?></td>
			<td><? echo $row['telephone']; ?></td>
			<td><? echo $test; ?></td>
			<td><? echo $row['cp']; ?></td>				

			<td><input name="LangPHP" type="checkbox" ></td>	
			<?
				if ($_POST['LangPHP']) 
				{
							// Requête qui permet de remplir la bdd ( permet de n'avoir que les champs nécessaires ): :
		$request=mysql_query("insert into matable 
		(email) 
		values ('$test')");
				}
				else {
					echo "case non coché";
				}
			
		?></tr>
		<?
	} ?>
	<input type="submit" value="Envoyer les mails">
	</form>
	<?	
	
	// On ferme la connexion :
	mysql_close(); // Déconnexion de MySQL


Mon problème doit venir d'ici:
if ($_POST['LangPHP'])
{
// Requête qui permet de remplir la bdd ( permet de n'avoir que les champs nécessaires ): :
$request=mysql_query("insert into matable
(email)
values ('$test')");
}
else {
echo "case non coché";
}
}

Comment faire pour récupérer l'adresse mail si la case est cochée ???

Merci a tout ceux qui auront eu le courage de plonger dans mon code !!!
A voir également:

4 réponses

Utilisateur anonyme
29 juil. 2008 à 15:39
Salut,
je veux bien m'occuper de ton problème mais ton code me paraît bizarre.
			<?
				if ($_POST['LangPHP']) 
				{
							// Requête qui permet de remplir la bdd ( permet de n'avoir que les champs nécessaires ): :
		$request=mysql_query("insert into matable 
		(email) 
		values ('$test')");
				}
				else {
					echo "case non coché";
				}
			
		?>

C'est quoi tout ça? Je comprends pas du tout ce code désolé ^^.
Dis moi si je me trompe mais j'ai l'impression que tu crois qu'en cochant la case ça va directement faire un insert dans la bdd. Si c'est le cas, la réponse est : avec le php tout simple tu ne peux pas faire une requête en temps réel, elle est seulement exécutée au moment du chargement de la page.
0
Non je veux que l'on coche les différentes cases. Ensuite je veux lorsque j'appui sur envoyer, cela insére le tout dans la base de données.

J'ai fais quelques petites modifications depuis tout a l'heure:
<form  method="post"><?
	while ($row = mysql_fetch_array($res))
	{
		
			$test=$row['email'];
			?>
		<tr>
			<td><? echo $row['nom'];?></td>
			<td><? echo $row['prenom']; ?></td>
			<td><? echo $row['ville']; ?></td>
			<td><? echo $row['adresse']; ?></td>
			<td><? echo $row['telephone']; ?></td>
			<td><? echo $test; ?></td>
			<td><? echo $row['cp']; ?></td>				

			<td><input name="LangPHP" type="checkbox" ></td>	
		</tr>
		<?
	} ?>
	<input type="submit" value="Envoyer les mails" name="ok">
	</form>
	<?	
	if (isset($ok))
	{
		if ($_POST['LangPHP']) 
		{
			// Requête qui permet de remplir la bdd ( permet de n'avoir que les champs nécessaires ): :
			$request=mysql_query("insert into matable
			(email) 
			values ('$test')");
			
		}
		else 
		{
			echo "case non cochéesssss";
		}
	}


pour le moment, quand je clique sur mon bouton, je n'ai que l'identifiant (auto incrémenté) qui se met dans la base. Mon champ e mail reste vide ...

Cela ta convient mieux ou tu veux plus de détail ??
Merci de te pencher sur mon problème !!
0
Bon en fait je laisse tombé. Je pars sur autre chose
Merci quand même
0
Utilisateur anonyme
29 juil. 2008 à 16:36
Oui mais ton code ça ne pourra pas marcher comme ça.
Déjà tu dois forcément mettre un action="" dans ton form. Tu mets le nom de ta page.
Ensuite tu vas devoir faire comme ça :
Dans ton tableau :
			<td><? echo $row['telephone']; ?></td>
			<td><? echo $row['mail']; ?></td>

<input type="checkbox" name="choix[]" value="<?php echo $row['mail']; ?>" />

Et tout en haut de ta page :
for (var $i=0 ; $i< sizeof($choix) ; $i++){
		if (isset($choix[$i]) ){
			$sql= mysql_query("INSERT INTO matable (email) values('".$choix[$i]."'"); 
		}
       }
}
0