Recuperer valeur checkbox

philippeC
Invité n'ayant pas de compte PHPfrance

03 août 2011, 18:30

Bonjour,

Ma question : Je cherche à récupérer l'état de mes checkbox qui se crée pour chaque langue. Est ce possible ?
Je cherche à faire en sorte qu'un premier choix des langues me permettent de sélectionner chaque fois la langue dans d'autres checkbox qui représentent des traductions de textes (ou il peut y avoir une checkbox pour la langue, ou non...)
$sql1 = "SELECT * FROM langues";
$req1 = mysql_query($sql1) or die('Erreur SQL1 !<br>'.$sql1.'<br>'.mysql_error());

$listing_langues = '';
while ($data1 = mysql_fetch_assoc($req1))
{
	$listing_langues .= '<tr align="left">
						<td><input type="checkbox" name="ids_langue[]" value="'.$data1['id_langue'].'"></td>
						<td><img src="icone_drapeaux/'.$data1['icone'].'" border="0">&nbsp;'.$data1['nom_langue'].'</td>
						</tr>';

}

Mammouth du PHP | 2278 Messages

03 août 2011, 19:00

Je suppose que tes checkbox sont dans un formulaire qui est envoyé à une autre page:
page 1
....
$sql1 = "SELECT * FROM langues";
$req1 = mysql_query($sql1) or die('Erreur SQL1 !<br>'.$sql1.'<br>'.mysql_error());
$texte_complet = "<form method = 'post' action = 'page2.php'>";
$listing_langues = '';
while ($data1 = mysql_fetch_assoc($req1))
{
$listing_langues .= '<tr align="left">
<td><input type="checkbox" name="ids_langue[]" value="'.$data1['id_langue'].'"></td>
<td><img src="icone_drapeaux/'.$data1['icone'].'" border="0">&nbsp;'.$data1['nom_langue'].'</td>
</tr>';
}
$texte_complet .= $listing_langues. "<button type='submit'>OK</button></form>";
print "$texte_complet";

et dans page2.php
tu as:
$t_liste_langues = $_POST['ids_langue'];
où tu te retrouves avec un tableau des identificateurs des langues choisies...
que tu peux propager par la suite sous forme de chaine passée dans des input hidden ou des variables de session:
$str_liste_langues = implode(";", $t_liste_langues);
Par la suite, si tu dois recréer ce genre de liste en tenant compte des choix antérieurs, tu crées au fur à mesure une variable
$checked ="checked='checked'"ou $checked ="checked = ''" et ton input devient
<input type="checkbox" $checked name="ids_langue[]" value="'.$data1['id_langue'].'"></td>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

philippeC
Invité n'ayant pas de compte PHPfrance

04 août 2011, 11:15

Bonjour,

Tout d'abord merci pour la rapidité de la réponse

Le problème est que là je recupère mes checkbox en post sur une autre page...
Je vais essayer de reexpliquer mon page : J'ai une premiere liste de langue à cocher, puis j'ai plusieurs textes qui ont (ou non) des traductions dans ces langues.

Je peux cocher les langues à chaque texte mais j'aimerais faire en sorte que ma première liste servent à cocher dans tous les textes la langue (sur la meme page donc).

Je pourrais utiliser une page simplement pour selectionner les langues à cocher (qui enverrait vers une page de confirmation pour l'utilisateur) mais je perdrais ma liste de textes selectionnés 2 pages plus tot je suppose...

Cdlt,
Philippe.

Mammouth du PHP | 2278 Messages

04 août 2011, 16:10

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
<meta http-equiv="content-type" 
		content="text/html;charset=utf-8" />
</head>
<body>
<form method = 'post' action = 'choix_des_textes.php'>
<input type = 'checkbox'  name ='langue[]' value ='1' />Anglais<br />
<input type = 'checkbox'  name ='langue[]' value ='2' />Russe<br />
<input type = 'checkbox'  name ='langue[]' value ='3' />Japoniais<br />

<button type = 'submit'>OK</button>
</form>
</body>
choix des textes.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
<meta http-equiv="content-type" 
		content="text/html;charset=utf-8" />
	</head>
<?PHP
$tableau_langues = $_POST['langue'];
//recherche  des titres des livres dans les labgues choisies mis sous la forme d'un select
$liste_livres = "<select name = 'liste_livres'>
<option value ='820.16.PAS'>Pensées de Pascal</option>
<option value ='830.15.MIL'>Lost Paradise</option>
<option value ='880.20.MAR'>Marie Martia</option>
</select>";
$str_langues = implode(";", $tableau_langues);
/* pour passer à la suite en conservant ce choix*/
print "
<form ....>
$liste_livres
<input type= 'hidden' name = 'langues_choisies' value ='$str_langues' />";

?>
et ensuite tu fais de même pour les bouquins choisis
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD