Jones
Jones

Reputation: 103

How to handle AJAX error if sql update fails?

I have a php file, which updates the SQL, if the "follow this user" button is clicked, and an AJAX calls this PHP file. The code below works, it follows the user! My problem is: If, for some reason the SQL update fails, I want the AJAX to drop an error message (e.g. an alert), but I really don't know how this could be possible. The AJAX doesn't know whether the update succeeded or not.

Here's my code:

PHP

if(!empty($_GET['a']) and $_GET['a']=='follow')
{
    $id = sql_escape($conn,$_GET['id']);
    $me = $user2[0];
    //the user's id who clicks on the follow button

    $query = sql_fetch(sql_query($conn, "select * FROM
    forum where id='$id'"));
    //check who created this forum, so we know who to follow

    $follow_this_user = $query['user'];
    //the user to follow

    $now = date('Y-m-d H:i:s');
    $already_follow_user = sql_fetch(sql_query($conn,
    "SELECT * FROM follow WHERE user_id=".$me." AND
    followed_user =".$follow_this_user." "));
    //check if user already followed by this user

    if(empty($already_follow_user[0])) {
    //if not followed

    sql_query($conn,"INSERT INTO follow
        (user_id, followed_user, date) VALUES
        ('".$me."', '".$follow_this_user."', '".$now."');")
        or die(mysqli_error($conn));
    }
}

AJAX:

$(document.body).on('click', '.followable', function(){
//User clicks on the follow text, which has "followable" class

    $.ajax({
        //type: 'GET',
        url : '/ajax/ajax_follow.php?a=follow&id=<?php print $topic[id]; ?>'
        //the $topic['id'] is the id of the current topic, which
        //I need to know who created this forum, to follow that user
        //(as mentioned above in the php code)
});

I need data and error, but no idea how to get them working. I tried many things, but I just can't get the data.

Upvotes: 0

Views: 57

Answers (1)

Aaron
Aaron

Reputation: 1737

Add this to your ajax request:

success: function(data) {
  alert(data);
}

And simply echo something on your PHP page. For example:

$result = mysql_query($sql);
echo $result;

If you want to recieve more data, JSON is your friend.

Upvotes: 2

Related Questions