Page 1 sur 1

Recuperer des variables de checkbox pour mail les values

Posté : 13 avr. 2010, 06:56
par kopax
Bonjour,

J'ai une très longue liste (à peut prêt 50) de checkbox qui apparait sur ma page dans une boucle :
while($row = mysql_fetch_assoc($res))
{
 echo "<input type='checkbox' name='products' id='products' value='".$row['products_id']."' />&nbsp;".$row['products_brand']."&nbsp;".$row['products_model']."<br>";
}
J'aimerai récupérer les values de toute les checkbox coché dans ce post avec un script léger, pour les envoyés par mail.

Etant donnée que le values et le nombres des checkbox peux changé et varié, j'ai besoin de récupérer donc les post de manière dynamique. (et si possible que de celle qui sont coché) pour en faire des variables que j'enverrai par e-mail.

Je fais quelque chose de grossier car je sais pas comment faire un array ou même un tableau, j'ai jamais compris, et j'ai toujours réussi à m'en passer au détriment de la qualité de mes scripts. (mais la dans mon cas je vois pas comment faire autrement)
Pour le moment le while je ne l'ai utilisé que d'une seul méthode , pour récupère avec Mysql des donnés.
while($data = mysql_fetch_array($req))
Il faut une expression à mon while (comme j'ai vu dans le manual) et a part les exemples du manual php des trucs mega basic comme $i <= 10
Je sais pas ce qu'on peux mettre comme expression dans le while.

Grossièreté
$header = "From:[email protected]"
$passage_ligne = "\n";
$selected_products = $passage_ligne;

// Grossièreté mais pour m'aider à trouvé des pistes quand même
// Au lieu d'écrire 50 ligne pour vérifié un par un les checkbox je vais un while
while(je sais vraiment pas quoi mettre)
  // Ici pour chaques produits on va effectué se scripts, le [] vide va se remplir automatiquement à chaque fois que une checkbox aura été coché
  if isset($_POST['products'][]);
  {
  // Ici on récupere la value products_id de chaque checkbox
  array ($_POST['products'][] => $products[])
  //
  // On ajoute au texte le produits
  $selected_products .= $products[].$passage_ligne;
  // On crée un message pour dire que ça a fonctionné
  $OK = "OK";
  }

endwhile;

if isset($OK) 
{
echo $OK."<br">;
mail('[email protected]','Sujet',$selected_products,$header);
echo "Mail envoyé";
}
// Je suppose ici que mettre [] dans le name définie un tableau
echo "<input type='checkbox' name='products[]' id='products' value='".$row['products_id']."' 
J'aimerai bien qu'on m'aide à réalisé ceci, et qu'on m'aide à assimilé les notions fondamentales des array, tableau et while.

Re: Recuperer des variables de checkbox pour mail les values

Posté : 13 avr. 2010, 09:32
par telnes
hello

pour faire un tableau

Code : Tout sélectionner

while($row = mysql_fetch_assoc($res)) { echo "<input type='checkbox' name='products[]' id='products' value='".$row['products_id']."' />&nbsp;".$row['products_brand']."&nbsp;".$row['products_model']."<br>"; }
il faut ajouter des [] au name

++

Re: Recuperer des variables de checkbox pour mail les values

Posté : 13 avr. 2010, 10:51
par kopax
hello

pour faire un tableau

Code : Tout sélectionner

while($row = mysql_fetch_assoc($res)) { echo "<input type='checkbox' name='products[]' id='products' value='".$row['products_id']."' />&nbsp;".$row['products_brand']."&nbsp;".$row['products_model']."<br>"; }
il faut ajouter des [] au name

++
Merci, effectivement, je n'ai pas modifié le form, mais c'est pour la suite que j'ai besoin d'aide, pour qu'on me donne les moyens d'écrire le script que je cherche à crée.

Re: Recuperer des variables de checkbox pour mail les values

Posté : 13 avr. 2010, 11:05
par Aureusms
Tu as une autre possibilité en nommant des checkbox du même préfixe et en faisant une ségrégation sur le nom lors du traitement
<?php

if (isset($_POST))
{
	$tab_numero_check_box = array();
	foreach ($_POST as $cle => $valeur)
	{
		if (preg_match('#product_#',$cle))
		{
			//c'est un checkbox avec product en name
			if ($valeur == "on")
			{
				//la chekbox est cochée (vérification car normallement si pas cochée pas envoyée)
				//on récupère le nom de la checkbox pour post traitement
				$tab_numero_check_box[] = substr($cle,8);
			}
		}
	}
	
	//post traitement
	if (empty($tab_numero_check_box))
	{
		//pas de checkbox de cochée
	}
	else
	{
		echo '<p>Les case cochées sont les numéros suivants</p>';
		foreach ($tab_numero_check_box as $valeur)
		{
			echo $valeur.'<br />';
		}
	}
}

//génération d'un formauliare pour les essais
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
<?php
for ($i=1 ; $i < 35 ; $i++)
{
	echo $i; 
	?> 
	=> <input type="checkbox" name="product_<?php echo $i; ?>"  />
	<br />
	<?php
}
?><br />
autre input pour le fun
	<br />
	<input type="text"  name="1" value="popo"/>
	<br />
	<input type="text"  name="2" value="popo2"/>
	<br />
	<input type="text"  name="3" value="popo3"/>
	<br />
	<input type="text"  name="4" value="popo4"/>
	<input type="submit" value="envoyer"  />
</form>
<?php

Re: Recuperer des variables de checkbox pour mail les values

Posté : 13 avr. 2010, 12:07
par kopax
Super de partagé ton code. C'est presque ce qu'il me faut.

En copie/past il à l'air de marché, je vais essayé de l'adapté à mes besoins et voir les possibilités :P

Merci !