当前位置: 首页 > 面试题库 >

使用Ajax提交2种不同的PHP表单

邓毅
2023-03-14
问题内容

我想使用2个不同的PHP页面发送2个具有不同值的表单时遇到问题。

我的ajax代码如下:

        $(document).ready(function() {
          var form = $('#main_form_new');
          var submit = $('.sbbtn');
          var alert = $('.form_result');
          form.on('submit', function(e) {
            e.preventDefault();

            $.ajax({
              url: 'ajax/category.php',
              type: 'POST',
              dataType: 'html',
              data: form.serialize(),
              beforeSend: function() {
                alert.fadeOut();
                submit.html('Saving Changes....');
              },
              success: function(data) {
                alert.html(data).fadeIn();
                form.trigger('reset'); // reset form
                submit.html('Save Changes');
              },
              error: function(e) {
                console.log(e)
              }
            });
          });
          });

对于第二种形式,我更改了var并将其替换为

          var itemform = $('#item_main_itemform_new');
          var itemsubmit = $('.itemsbbtn');
          var itemalert = $('.item_itemform_result');
          itemform.on('submit', function(e) {
            e.preventDefault();

            $.ajax({
              url: 'ajax/items.php',
              type: 'POST',
              dataType: 'html',
              data: itemform.serialize(),
              beforeSend: function() {
                itemalert.fadeOut();
                itemsubmit.html('Saving Changes....');
              },
              success: function(data) {
                itemalert.html(data).fadeIn();
                itemform.trigger('reset'); // reset itemform
                itemsubmit.html('Save Changes');
              },
              error: function(e) {
                console.log(e)
              }
            });
          });

这是行不通的,因为我真的不知道原因。我在哪里做错了?


问题答案:

不要重复自己。

如果需要两次相同的功能,请不要复制和粘贴代码。创建一个函数,将变量用作变量部分,两次调用该函数。

$(function() {
    function formSubmitHandler(options) {
        return function (e) {
            var $form = $(this),
                $submit = $(options.submit),
                $alert = $(options.alert);

            e.preventDefault();

            $alert.fadeOut();
            $submit.html('Saving Changes...').prop({disabled: true});

            $.post(options.url, $form.serialize())
            .done(function (data) {
                $alert.html(data).fadeIn();
                $form.trigger('reset');
            })
            .fail(function (jqXHR, textStatus, errorThrown) {
                $alert.html(textStatus).fadeIn();
                console.log(arguments);
            })
            .always(function () {
                $submit.html('Save Changes').prop({disabled: false});
            });
        };
    }

    $('#main_form_new').submit(formSubmitHandler({
        url: 'ajax/category.php',
        submit: '.sbbtn',
        alert: '.form_result'
    }));

    $('#item_main_itemform_new').submit(formSubmitHandler({
        url: 'ajax/items.php',
        submit: '.itemsbbtn',
        alert: '.item_itemform_result'
    }));
});


 类似资料:
  • 问题内容: 是否可以使用Django中的一个提交按钮提交两种不同的形式?我有一个称为“仪器”的形式和四个相等的形式“配置”。现在,我想始终提交一个配置和工具。例如instrument + config 1和instrument + config 2,并且每个配置都有自己的提交按钮。 我已经在配置表单中用一个按钮尝试过: 并调用js函数“ onclick”: 这是我在views.py中的方法: 问题

  • 问题内容: 我正在尝试使用jquery将值提交到数据库。我是ajax的新手,但是我必须使用ajax。 到目前为止,这是我已经完成的PHP代码 我的html代码是 这是我使用jQuery的ajax 我不知道我在做什么错。任何帮助将不胜感激 问题答案: 与其干扰表单的Submit事件,不如点击事件。要对现有设置进行最小的更改,只需将点击处理程序添加到表单提交按钮。处理程序中的第一件事是调用e.prev

  • 问题内容: 我正在尝试使用AJAX技术添加评论,但出现错误: 这是我的代码:View: 控制器: AJAX: 最后一条路线: 任何人都知道问题出在哪里,为什么我不能提交表格? 问题答案: 您没有发布任何数据, 您得到的错误是DB中的列不能为空。 尝试将您的ajax调用更改为此: 改变这个 至 并获取消息和帖子ID: 完成ajax块: 最后,在隐藏字段中添加一个ID: 从Laravel控制器发送回数

  • 问题内容: 所以假设我有3种形式 每个表单都有自己的提交按钮 现在假设我有另一种形式 其唯一的功能是同时提交所有其他3种形式。…现在这里是约束: 当submitAll提交后,它必须使用Ajax这样做,并且最好通过POST将输入的数据从所有其他3种形式转发到processor.php processor.php需要能够区分输入到哪种形式…然后分别处理每种形式的输入 我的问题是..什么是使proces

  • 问题内容: 我正在尝试通过ajax帖子提交多种表单,但是问题是服务器在帖子中返回了一个空数组。 这是我的JS中的代码: 在服务器端: 我究竟做错了什么?谢谢! 问题答案: 不,没有属性,其: 是标记中使用的属性。 样本输出 旁注:我认为更合适: 另一个例子

  • 问题内容: 看起来这应该是jQuery内置的东西,不需要多行代码,但是我找不到“简单”的解决方案。说,我有一个HTML表单: 当有人更改选择字段时,我想使用ajax提交表单以更新数据库。我认为可以通过以下方式来执行以下操作,而无需手动创建值/属性,只需将它们全部发送即可,例如: 我想念什么? 问题答案: 这就是最终的工作。