Ajax,处理 javascript 中的 php 响应

Ajax, handling the php response in javascript

本文关键字:php 响应 中的 javascript 处理 Ajax      更新时间:2023-09-26

所以我正在学习Ajax,我遵循了本教程:https://phpacademy.org/course/submitting-a-form-with-ajax 创建一个适用于任何形式的函数。这是完整的功能:

$('form.ajax').on('submit', function() {
    var that = $(this),
        url = that.attr('action'),
        type = that.attr('method'),
        data = {};
    that.find('[name]').each(function(index, value) {
        var that = $(this),
            name = that.attr('name'),
            value = that.val();
        data[name] = value;
    });
    $.ajax({
        url: url,
        type: type,
        data: data,
        success: function(response) {
            alert(url + ' ' + response);
        }
    })
    return false;
});

如您所见,我所做的只是提醒响应,在这种情况下是php echo .这就是我的问题开始的地方,我需要一种灵活安全的方式来处理javascript/php通信。最好是所有表单的一个函数,可能带有if ()语句而不是alert(url + ' ' + response);,具体取决于表单url

我需要的功能不是很复杂,根据我得到的响应,我只会更新当前表单并出现错误。

只要我知道在沟通中使用什么,我就可以从那里开始,echo '1';我现在感觉不像是理想的解决方案,但这是我所能处理的。

那么,我应该从 php 页面发送什么类型的响应,以及(在 javascript 中)的位置以及如何处理它的最佳方法?我听说过 json,但很难理解它。有人可以显示一个 json 响应发送一个基本整数,我的响应很容易被拾取为 int?

您可以通过 PHP 发回一个简单的 JSON 响应,并在success回调中检查它。确保在 AJAX 调用中将type设置为 json,并在 PHP 端使用 json_encode

$response = array('response' => 1);
echo json_encode($response);

输出应为:

{ 'response' : 1 }