Raffraichir une checkbox

Gmassy Messages postés 5 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 18 mai 2010 - 11 mai 2010 à 16:00
Visibeo Messages postés 6 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 5 août 2010 - 3 août 2010 à 02:25
Bonjour à Tous,
Je vous explique mon problème.
Je fais un formulaire avec un bouton à la fin, lorsque j'appuie sur le bouton les checkbox cochées s'enregistre en base de données. Le problème est lorsque je veux les décocher, je n'arrive pas à faire en sorte de recharger la page( ou faire quelque chose) afin qu'elles s'enregistrent comme décochées en base de données et que je ne les voient plus cochées dans mon formulaire.
Je ne sais vraiment pas comment m'y prendre, peut être en Ajax mais je ne connais pas ce langage.
Si quelqu'un pourrais m'aider ce serait avec grand plaisir.

Voici mon code :


<head>
<?php
$choix = $_POST['liste'];
print_r ($choix);
echo "choix:" ;

for ($i=0;$i<sizeof($choix);$i++){
//if(isset($choix[$i])){
$choi = $choix[$i];
//$choi = $choi.$choix[$i];
echo $choi;
//met a true si coché
$sql="UPDATE `spip_rubriques` SET  `checke` = "true" WHERE id_rubrique=$choix[$i]";
$req = mysql_query($sql) or die ('Erreur SQL !'.$sql.'
'.mysql_error());
//}
}
</head>

<?php
?>



Champs pour le GeoRSS


<form method="post" action="http://localhost/ecrire/?exec=configuration">


Attribuer les champs (Lieu, Pays et Caractéristiques) à certaines rubriques :


<?php
$sqlcar = mysql_query("ALTER TABLE spip_rubriques ADD checke varchar(5) NOT NULL");

$sql = mysql_query('SELECT * FROM spip_rubriques');
while ($req = mysql_fetch_array($sql))
{
$sqlcheck = mysql_query("SELECT checke FROM spip_rubriques WHERE id_rubrique=".$req['id_rubrique']."");
while($row=mysql_fetch_array($sqlcheck)){
$t=$row[0];
//echo $t;
if($t!="true"){*/

print(" <label>"); echo'' . $req['titre'].''; print("</label>
");
}
if($t=="true"){
$m=$req['id_rubrique'];
print(" <label>"); echo'' . $req['titre'].''; print("</label>
");
}

}
print("


</form>



3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 mai 2010 à 16:15
Salut,

En effet, l'utilisation d'AJAX rendrais cette opération plus dynamique et invisible pour l'utilisateur.

Fais une recherche dans les sources : l'utilisation d'AJAX n'est pas très compliqué.

Note : AJAX n'est pas un langage à proprement parlé, c'est juste du javascript qui permet de faire des requêtes asynchrone au serveur.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Visibeo Messages postés 6 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 5 août 2010
3 août 2010 à 02:22
Hello,

Moi en général, je ne me prends pas la tête, je suis un barbare, je supprime les anciennes entrées avant d'ajouter les nouvelles, par exemple :

if($_POST['liste'])
{
$choix = $_POST['liste'];
// On vire les anciennes entrées
mysql_query("DELETE FROM spip_rubriques");
for ($i=0;$i<sizeof($choix);$i++)
{
$choi = $choix[$i];
//met a true si coché
mysql_query("UPDATE `spip_rubriques` SET `checke` = "true" WHERE id_rubrique=$choix[$i]") or die ('Erreur SQL !'.$sql.'
'.mysql_error());
}
}
0
Visibeo Messages postés 6 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 5 août 2010
3 août 2010 à 02:25
Ooops, désolé j'ai mal lu...
Ce serait plutôt ça :

// On vire les anciennes entrées
mysql_query("UPDATE spip_rubriques SET checke='' ");

Cela réinitialise tous les check en base de données et permet de spécifier ensuite les nouvelles valeurs.

Enfin, je ne vois pas en quoi il y aurait besoin de javascript ou ajax ici.
0
Rejoignez-nous