Probleme case a cocher enregistrer sur sql

Fermé
dadou9101 Messages postés 107 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 12 août 2010 - 14 oct. 2008 à 14:51
dadou9101 Messages postés 107 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 12 août 2010 - 21 oct. 2008 à 09:59
Bonjour,


je cree une sorte de checklist pour ne pas oublier les chose que je devrais faire.
Jai donc cree un formulaire avec plusieur point a marquer et au bout de ces point une checkbox.

J'aimerai enregistrer dans ma table Mysql mon tavbleau qui est sous forme de checkbox checkbox je pense que cela doit être fait sous forme de POST

mais je n'arrive pas a trouver la solution

Jai cree une table Controle dans ma table j'ai cree un champs fait_cont qui a une valeur booleennne (BOOL)

je voulais savoir comment je pourrais intégrer mes enregistrement lier a mes checkbox dans ma base mysql.

je vous remercie de toutes laide que vous pourrez m'apporter
A voir également:

4 réponses

dadou9101 Messages postés 107 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 12 août 2010 5
14 oct. 2008 à 14:53
si joint mon code avec une exemple de 2 case que je doit cocher



<?php

include('connexion.php');
//création de la requête SQL
$sql = "SELECT * FROM `operations` WHERE `id_ope`=1";
//exécution de la requête SQL
$requete = @mysql_query( $sql, $link ) or die( $sql . "<br>" . mysql_error() );
echo "<table width=100% border=2>";
echo "<tr>";
echo "<td width=10%><center>N°</center></td>";
echo "<td width=80%><center>Description</center></td>";
echo "<td width=10%><center></center></td>";
echo "</tr>";

while ($tab = mysql_fetch_array($requete))
{
echo "<tr>";
echo "<td width=10%><center>".$tab['id_ope']."</center></td>";
echo "<td width=80%><a href=\"operations/operation (1).php?nom=".$tab['description_ope']."\" target=\"_blank\">". $tab['description_ope']."</a></td>";
echo "<td width=10%><center><input type=\"checkbox\" name=\"id_cont\" value=\"1\" /></center></td>";
echo "</tr>";
}
?>


<?php

include('connexion.php');
//création de la requête SQL
$sql = "SELECT * FROM `operations` WHERE `id_ope`=2";
//exécution de la requête SQL
$requete = @mysql_query( $sql, $link ) or die( $sql . "<br>" . mysql_error() );


while ($tab = mysql_fetch_array($requete))
{
echo "<tr>";
echo "<td width=10%><center>".$tab['id_ope']."</center></td>";
echo "<td width=80%><a href=\"operations/operation (2).php?nom=".$tab['description_ope']."\" target=\"_blank\">".$tab['description_ope']."</a></td>";
echo "<td width=10%><center><input type=\"checkbox\" name=\"id_cont\" value=\"1\" /></center></td>";
echo "</tr>";
}
?>
2
dadou9101 Messages postés 107 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 12 août 2010 5
15 oct. 2008 à 09:50
up
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 oct. 2008 à 12:00
si tu mets des checkbox

<input ype="checkbox" name="cases_coch[]" value="1">
<input ype="checkbox" name="cases_coch[]" value="2">
<input ype="checkbox" name="cases_coch[]" value="3">

tu vas récuperer en method POST les cases cochées dans un array

$cases_cochees=$_POST['cases_coch'];
si la case est cochée tu auras la valeur de value sinon rien

tu retrouve tes cases en parcourant l'array

ou alors tu mets un name différend pour chaque case à cocher case_1 case_2 etc...



donc dans ta base il faut que tu enregistres si cochée la valeur, sinon 0 par exemple

ensuite quant tu lis ta table si différend de de 0 tu mets checked au moment de l'afficchage

ex:

<input ype="checkbox" name="cases_coch[]" value="1" <?php if ($tab['id_ope'] == "1") {echo "checked"; } ?>>
0
dadou9101 Messages postés 107 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 12 août 2010 5
15 oct. 2008 à 20:28
si je comprend bien mon code est faux


echo "<td width=10%><center><input type=\"checkbox\" name=\"id_cont\" value=\"1\" /></center></td>";

ou jeu peu kan meme recupere mes données dans un post
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 oct. 2008 à 20:39
Si elles ont toutes le même name oui c'est faux

soit tu mets name="id_cont[]"

et tu récupéres dans un array

soit tu mets name=""id_cont_1"

name="id_cont_2" etc..

et la tu récuperes par

if(isset$_POST['id_cont_1']){$id_cont_1=$_POST['id_cont_1'];}

etc...
-1
dadou9101 Messages postés 107 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 12 août 2010 5 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
21 oct. 2008 à 09:59
jai toujours un petit souci je narrive pas a affectuer mon enregistrement sur ma base de donne pourtant jai suivi ta methode


<?php
foreach($_POST AS $key=>$value)
echo $key . "<br>";
echo $value . "<br>";
include('connexion.php');
{
if($value == '1')
{
//Ici tu mets toutes les actions que tu veux faire si le bouton est coché
$statement = "INSERT INTO controle (operations_id_ope ,magasin_id_magasin) VALUES ('$key','$value')";
echo $statement;
//mysql_query ($statement);
}
else
{
//ici tu mets toutes les actions que tu veux faire si le bouton n'est pas coché
}
}
?>
0
dadou9101 Messages postés 107 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 12 août 2010 5
20 oct. 2008 à 11:20
donc OK

si je comprend bien je vais devoir attribuer un nom pour chaque chekbox
si je suis ton raisonnement par ex

<input type="checkbox" name="cases_coch1[]" value="1">
<input type="checkbox" name="cases_coch2[]" value="1">
<input type="checkbox" name="cases_coch3[]" value="1">

alors je devrais créer un post par checkbox

a savoir

$cases_cochees=$_POST['cases_coch1'];
$cases_cochees=$_POST['cases_coch2'];
$cases_cochees=$_POST['cases_coch3'];

le souci c'est que je vois pas la suite du code en faite je suis bloquer
1