PHP / JS:总结ajax请求

时间:2017-12-26 19:20:49

标签: javascript php jquery mysql ajax

因为我不想为每个子页面创建一个新的ajax文件,所以我想将我的所有ajax请求汇总为CREATE,UPDATE和DELETE。

因此,我将所有输入命名并选择' input_ '和'选择_ '并使用& area添加表名。 *代表MySQL表中的行。

然后我用(例如create)执行ajax请求:

$.ajax({
    type: "POST",
    url: "php/ajax/ajax.create.php",
    data: $('#form_*').serialize() + "&area=customers",
    success: function(result) {
        alert(result);
    }
});
  1. 如何处理PHP中的数据以获取包含所有值的数组,而不输入_'和'选择_' (例如:name => name,email => email,...)
  2. 这是处理我所有ajax请求的好方法吗?
  3. 提前致谢:)

1 个答案:

答案 0 :(得分:0)

您需要一个PHP并在您的ajax请求中告诉PHP您要发送的内容。 在PHP使用isset()中检查当前正在发送的数据。

例如在PHP中

<?php

if (isset($_POST['delete'])) {
    // delete post data
} elseif (isset($_POST['update'])) {
    // update post data
} elseif (isset($_POST['create'])) {
    // create data here
} elseif ....

在你的javascript中

$('#delete').on('click', function (e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "php/ajax/ajax_file.php",
        data: $('#deleteForm').serialize() + '&' + $.param({delete: true}),
        success: function(result) {
            alert(result);
        }
    });
})

$('#create').on('click', function (e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "php/ajax/ajax_file.php",
        data: $('#createForm').serialize() + '&' + $.param({create: true}),
        success: function(result) {
            alert(result);
        }
    });
})

$('#update').on('click', function (e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "php/ajax/ajax_file.php",
        data: $('#updateForm').serialize() + '&' + $.param({update: true}),
        success: function(result) {
            alert(result);
        }
    });
})

所有这些请求都使用相同的文件,您只需要在PHP中检查使用isset()发送的数据。您还可以在表单中使用隐藏的输入,然后移除$.param(),例如<input type="text" name="delete" value="delete" hidden>