2009-11-16 5 views

Répondre

3

Utilisez jQuery et PHP.

Ceci est an example dans jQuery:

$.post("test.php", { isChecked:$('#checkbox_id').attr('checked') }); 

Cette déclaration doit être définie à l'une ou l'autre dans le <head></head>, ou dans un fichier JavaScript distinct.

Et dans votre code PHP, vous pouvez vérifier la variable isCheckedPOST:

if($_POST('isChecked')==1) 
{ 
    //Set MySQL table to 1. 
} 
else 
{ 
    //Set MySQL table to 0. 
} 

est ici a reference on how to use post. Et voici how you can use PHP to update MySQL table.

+0

Salut, merci, pourriez-vous me diriger vers des références? – Marvin

+0

Merci pour votre exemple. Je vais essayer de l'implémenter. – Marvin

+0

Je doute de la partie jquery, est-ce que ce code est inclus dans chaque balise de case à cocher ex: ou est-ce une instruction générique qui est déclenchée chaque fois qu'une case est cochée? – Marvin

1

Vous utilisez le gestionnaire d'événement onchange de la case à cocher pour envoyer un XmlHttpRequest à du code côté serveur pour mettre à jour votre table.

+0

Merci, pourriez-vous s'il vous plaît fournir une référence? – Marvin

0

Je ne suis pas sûr de ce qui ne va pas. Ceci est mon PHP pour le test.php dans l'exemple de Ngu Bientôt Hui:

<?php 
$con = mysql_connect("localhost","root","root"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("FACT", $con); 

if($_POST('isChecked')==1) // THIS IS LINE 21 
{ 
    mysql_query("UPDATE Orc SET CON = 'CHECKED' 
    WHERE UID = '1'"); 
} 
else 
{ 
    mysql_query("UPDATE Orc SET CON = 'NO' 
    WHERE UID = '1'"); 
} 

mysql_close($con); 

?> 

Rien n'est hapening et si essayez d'ouvrir la page (test.php) Je suis confronté à l'erreur suivante:

Fatal error: Function name must be a string in /MAMP/htdocs/Fact/change.php on line 21

Je n'arrive pas à voir ce qui ne va pas.

Note: J'essaie juste de mettre à jour un seul enregistrement juste pour tester s'il fonctionne. Mes noms de cases à cocher sont générés dynamiquement mais je pense que je sais comment gérer cette partie.

+0

$ _POST ['isChecked'] – mculp

+0

Merci, j'étais complètement aveugle à celui-là. – Marvin

0

Une autre mise à jour:

Je suis toujours des problèmes avec cela,

Mon code PHP pour le test.php:

$con = mysql_connect("localhost","root","root"); 
    if (!$con) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("FACT", $con); 

    if($_POST['isChecked']==TRUE) // SEE THIS LINE PLEASE 
    { 
     mysql_query("UPDATE Orc SET CON = 'CHECKED' 
     WHERE UID = '1'"); 
    } 
    else 
    { 
     mysql_query("UPDATE Orc SET CON = 'NO' 
     WHERE UID = '1'"); 
    } 

    mysql_close($con); 

J'ai commenté l'une des lignes ci-dessus, à l'origine c'était "== 1" mais cela ne fonctionnait que très bien pour la désélection, je ne pouvais pas revenir à "CHECKED". Maintenant j'ai essayé de changer pour "VRAI" et maintenant je suis incapable de le mettre à "NON" ...

Qu'est-ce qui ne va pas? Et comment va-t-on déboguer ce genre d'erreurs? Y at-il un moyen d'avoir des commentaires à partir du JavaScript en cours d'exécution?

Questions connexes