如何在复选框条件更改时使用ajax更新mysql数据库?

slo*_*oga 3 mysql ajax jquery cakephp

我有一个文章表,在客户端显示在行中.每篇文章都有一个唯一的ID,并包含一个复选框,用于指示是否将此文章选为收藏夹.如果它是收藏夹,则已选中复选框.如果没有,则取消选中.现在我需要js或jquery和ajax来更新数据库中的表,如果复选框条件更改特定于每一行.另一个挑战是我在cakePHP MVC环境中工作.

<script type="text/javascript" src="jquery-1.2.1.min.js"></script>
<script type="text/javascript">

    function checkbox_click (id, favorite)
    {
        // see if checkbox is checked
        if(favorite==1)
        {
            $.ajax({
                type:'POST',
                url:'check_favorite.php', // this external php file isn't connecting to mysql db
                data:'id= ' + id + '&amp;favorite=1',
            });
        }// if
        // the checkbox was unchecked
        else
        {
            $.ajax({
                type:'POST',
                url:'check_favorite.php', // this external php file isn't connecting to mysql db
                data:'id= ' + id + '&amp;favorite=0',
            });
        }//else
    }
</script>
Run Code Online (Sandbox Code Playgroud)

--html--这是一个foreach循环.

echo "<input type='checkbox' id='$rowid;' name='favorite' checked='checked' onclick='checkbox_click('id','favorite',this();' />";


else
echo "<input type='checkbox' id='$rowid;' name='favorite'  onclick='checkbox_click('id','favorite',this.checked);' />";
Run Code Online (Sandbox Code Playgroud)

-jax调用的-php文件 -

<?php
//Database Variables - with the variables entered it doesn't connect
$dbhost = 'localhost';   // usually localhost
$dbuser = 'username';      // database username
$dbpass = 'password';      // database password

//Establish connection to MySQL database

$con = @mysql_connect($dbhost, $dbuser, $dbpass);
if (!$con)
die('Unable to connect.' . mysql_error());

mysql_select_db('devcake', $con);

// Get the variables.
$query = "UPDATE mytable SET favorite=".$_POST['favorite'] . "
WHERE id=".$_POST['id'] . ";";

mysql_query($query);
mysql_close($con);
?>
Run Code Online (Sandbox Code Playgroud)

小智 5

这是我使用的代码(感谢塞缪尔)

 $('input[name=favorite]').live("click",function(){
    var id    = $(this).attr('id');

    if($(this).attr('checked')) {
        var favorite = 1;
    } else {
        var favorite = 0;
    }

    $.ajax({
        type:'GET',
        url:'favorites.php',
        data:'id= ' + id + '&favorite='+favorite
    });
    //console.log('id: ' + id + ' Publico: '+publico + 'Value: '+value);

 });
Run Code Online (Sandbox Code Playgroud)