AJAX update MYSQL database using function called from HTML generated from PHP

ajax, javascript, mysql, php, sql

Solution

There are some mistakes in this code, let me help you line by line.

echo "<td> <img id='tblimg' 
onclick=\'like('" . $row['Username'] . "');\' 
src='like.jpg' alt='like/dislike image' 
width='80px' height='30px'></td>";

The javascript function is:

Escape your quotes for the onclick event first

    function like(user) 
    {

        $.ajax({
            url: "update.php",
            type: "POST",
            data: { 'username': user, 'liked': '1' },                   
            success: function()
                        {
                            alert("ok");                                    
                        }
        });
    }

add { and } to the ajax call

Remove the quotes from table name and fields

$sql = "UPDATE followers SET Liked = '$Liked' WHERE Username = '$Username'";

in ajax success and after the function begins, you can always print a message to see if your function is being called, and if php script is returning some error, use an alert for that

UPDATE

success: function(data){
   alert(data); // this will print you any php / mysql error as an alert                                    
}

UPDATE 2

Write your onclick option like this.

echo "<img onclick=\"like('" . $row['Username']. "');\" 
src='like.jpg' alt='like/dislike image' 
width='80px' height='30px' />";

Problem

I have a php page generating and displaying a table. for the last row in the table i want to display an image with an 'onclick' function attached. this will send the username for the selected row to a script that will use AJAX to update a database. The table displays fine but the AJAX is not working. my php to display the image is: ``` echo "<td> <img id='tblimg' onclick='like('" . $row['Username'] . "')' src='like.jpg' alt='like/dislike image' width='80px' height='30px'></td>"; ``` The javascript function is: ``` <script type="text/javascript" > function like(user) { $.ajax( url: "update.php", type: "POST", data: { 'username': user, 'liked': '1' }, success: function() { alert("ok"); } ); } </script> ``` And here is update.php: ``` <?php $con=mysqli_connect("","sam74","********","sam74"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $Username = $_POST['username']; $Liked = $_POST['liked']; $sql = "UPDATE 'followers' SET 'Liked' = '$Liked' WHERE 'Username' = '$Username'"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } mysqli_close($con); ``` ?>

Original source