Php AJAX请求无法工作

Php AJAX请求无法工作,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,我创建了一个脚本,该脚本使用2个邮政编码并返回距离,如果距离小于4英里,则返回一条成功消息,如果距离超过4英里,则返回另一条消息。如果表单字段为空,它还应该抛出一个错误 我希望能够在不刷新页面的情况下返回数据,但到目前为止,我似乎无法让ajax请求正常工作,它根本没有任何作用 jQuery不是我的堡垒,我是通过在线搜索拼凑起来的 $(document).ready(function () { $('#postcode-form').submit(function (event) {

我创建了一个脚本,该脚本使用2个邮政编码并返回距离,如果距离小于4英里,则返回一条成功消息,如果距离超过4英里,则返回另一条消息。如果表单字段为空,它还应该抛出一个错误

我希望能够在不刷新页面的情况下返回数据,但到目前为止,我似乎无法让ajax请求正常工作,它根本没有任何作用

jQuery不是我的堡垒,我是通过在线搜索拼凑起来的

$(document).ready(function () {
    $('#postcode-form').submit(function (event) {
        event.preventDefault();
        $('.help-block').remove(); // remove the error text

        var formData = {
            'destination': $('input#destination').val()
        };

        $.ajax({
            type: 'POST',
            url: 'includes/postcode-finder.php',
            data: formData,
            dataType: 'json',
            encode: true
        }).done(function (data) {
            if (!data.success) {
                if (data.errors.destination) {
                    $('#destination-group').append('<div class="help-block">' + data.errors.destination + '</div>');
                }

            } else {
                $('#postcode-form').append('<div class="alert alert-success">' + data.message + '</div>');
            }
        })

    });

});

您使用的是jQuery 1.4.4,它不会从
$.ajax
返回,因此
.done()
函数不可用

您有两个选择:

更新jQuery(如果您这样做了,请确保您测试了依赖它的任何其他内容!)

或者改用success参数:

$.ajax({
    type: 'POST',
    url: 'includes/postcode-finder.php',
    data: formData,
    dataType: 'json',
    encode: true,
    success: function (data) {
        // do stuff
    }
});
从:

从jQuery 1.5开始,$.ajax()返回的jqXHR对象实现 Promise接口,为它们提供所有属性、方法和 承诺的行为(有关更多信息,请参阅延迟对象)


您是否查看过浏览器控制台中是否有任何错误?他们应该在问题编辑器中为该问题设置一个复选框。”在您将此问题发布到SO之前,请确保您已@JayBlanchard我希望每次我不得不发表那篇血腥的评论时我都能得到一分钱:)他们应该把那些和其他几个放在评论框@rorymcrossan的自动完成上:)$data=[1,2,3,4];是新的数组缩写:)PHP方面的工作确实正常,它按预期返回json
$.ajax({
    type: 'POST',
    url: 'includes/postcode-finder.php',
    data: formData,
    dataType: 'json',
    encode: true,
    success: function (data) {
        // do stuff
    }
});