user756659
user756659

Reputation: 3512

Simple success/error return with ajax and php

Just starting to learn about ajax although I am running into trouble trying to return a success message in an array.

<script type="text/javascript">
$(function () {
    $('#delete').on('click', function () {
        var $form = $(this).closest('form');
        $.ajax({
            type: $form.attr('method'),
            url: $form.attr('action'),
            data: $form.serialize()
        }).done(function (response) {
            if (response.success) {
                alert('Saved!');
            } else {
                alert('Some error occurred.');
            }
        });
    });
});
</script>

<?php
$array = array();
$array['success'] = TRUE;
echo $array;
?>

response.success should refer to $array['success'] correct?

Upvotes: 1

Views: 7446

Answers (1)

jszobody
jszobody

Reputation: 28911

You are trying to echo your array, which will just spit out "Array".

Instead you need to encode your array as JSON and echo that out.

Change this:

echo $array;

To this:

echo json_encode($array);

Also you probably need to add your dataType in your ajax params so jQuery auto-parses the response:

dataType : 'json' // stick this after "data: $form.serialize()" for example

Also, here's a good post to read on how to properly handle success/errors with your ajax calls (thanks @Shawn):

Jquery checking success of ajax post

Upvotes: 5

Related Questions