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); ``` ?>