Adaptation de code ... aidez moi please

Fermé
arcadia77 Messages postés 7 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 24 février 2009 - 18 févr. 2009 à 16:14
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 18 févr. 2009 à 18:33
Bonjour à tous,

Merveilleuse source d'information que vous êtes, j'ai besoin de votre aide !!!

Voila mon probleme :
J'ai cette requete qui fonctionne très bien sur avec un select
<?php									   						
$rows = mysql_num_rows($sql);
						
if(isset($rows))
{  
while($data = mysql_fetch_array($sql))
{
	$selected="";
	if ($data[1]==$service)
                {
	$selected=" selected=\"selected\"";
	}
	echo "<option value=\"".$data[1]."\"".$selected.">".$data[2]."</option>\n";
	}
}
?>


Voici ma requete $sql
$sql = mysql_query("SELECT * FROM liste_services order by service");

Voila ma question !
J'aurai besoin de faire exactement la même chose avec des cases a cocher !

Quelqu'un peut m'aider ???
S'il vous manque des infos n'hesitez pas... :-)
D'avance merci !

Christophe
A voir également:

3 réponses

bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
18 févr. 2009 à 16:26
<?php									   						
$rows = mysql_num_rows($sql);

if(isset($rows))
{  
	while($data = mysql_fetch_array($sql))
	{
		$checked="";
		if ($data[1]==$service)
		{
			$checked=" checked=\"checked\"";
		}
		print "<input type=\"checkbox\" value=\"".$data[1]."\"".$checked.">".$data[2]."\n";
	}
}
?>


Pense à mettre un attribut name aux input checkbox.
Et puis éventuellement attribut id aux input avec un label for sur le texte (c'est bien plus pratique) : https://www.aplawrence.com/Blog/B993.html
0
arcadia77 Messages postés 7 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 24 février 2009
18 févr. 2009 à 17:01
Merci Bizu ...
Mais alors à priori mon probleme ne viendrais donc pas de la.
En fait, je te plante le decors ...

1er formulaire avec des checkboxs. Lors du post, je sérialise toute la série de case a cocher, et la je recupere dans la BDD la valeur sérialisée des cases.
//serialisation liste de diffusion
$tableau_2=array($_POST['listediffusion']);
$stableau_2=serialize($tableau_2);


Sur un autre formulaire, je récupere le champs sérialisé de la BDD, la je déserialise, j'obtiens bien la liste des cases qui etaient cochées. - jusque la tout va bien -

$nom_listes_diff1 = unserialize ($nom_listes_diff);
foreach($nom_listes_diff1[0] as $selectValue)
{
echo $selectValue."   ";
}

alors c'est a partir de la ou je dois recocher les cases précedement cochées.
donc je voulais utiliser cette méthode, mais ca fonctionne pas ...


Une idée ??

D'avance merci

Christophe
0
arcadia77 Messages postés 7 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 24 février 2009
18 févr. 2009 à 18:19
J'ai un peu progressé mais c'est pas encore ca ! (merci Bizu53)

voici la nouvelle tete du code :
<?php

$colonne = 0;
$rows2 = mysql_num_rows($sql2);

if(isset($rows2))
{
while ($data2 = mysql_fetch_array($sql2))
{
$nom_listes_diff1 = unserialize ($nom_listes_diff);
foreach($nom_listes_diff1[0] as $selectValue)
{
$checked="";
if ($data2[2]==$selectValue)
{
$checked=" checked=\"checked\"";
echo "<tr>\n";
echo "<td class=\"title\" TITLE='".$data2[2]."'><input type=\"checkbox\" name='".$data2 [2]."' ".$checked.">".$data2[2]."</input>";
}

if (0 == $colonne)

//echo "<tr>\n";
//echo "<td class=\"title\" TITLE='".$data2[2]."'><input type=\"checkbox\" name='".$data2[2]."' ".$checked.">".$data2[2]."</input>";

$colonne = ($colonne + 1) % 4; // affichage sur 4 colonnes
if (0 == $colonne)
echo "</tr>\n\n";
}
}
}
if ($colonne != 0)
echo "</tr>";

?>

A ce stade, je récupère exclusivement les cases cochées !
mais pas celles qui ne le sont pas du 1er formulaire et je les veux !

Dans le cas ou je place des commentaires dans la boucle if ($data2[2]==$selectValue), et que je decommente les lignes suivantes :
//echo "<tr>\n";
//echo "<td class=\"title\" TITLE='".$data2[2]."'><input type=\"checkbox\" name='".$data2[2]."' ".$checked.">".$data2[2]."</input>";

je me recupere autant de fois la meme case à cocher qu'il y a de case cochées et cela pour toutes (c'est pas clair du tout mais je ne sais pas comment le dire autrement !) par contre, j'ai celles qui n'ont pas été cochées du 1er formulaire !

Help me !!!

Thanks
Christophe
0
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
18 févr. 2009 à 18:33
Si je me souviens le fait de mettre un name du style "toto[]" au lieu de "toto" ça permet de récupérer les valeurs dans une array plutôt qu'en tant que plein de variables. Ya un truc du genre, tu peux toujours essayer.
0