Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery $\u POST和$\u请求数据在location.reload()上丢失_Jquery_Ajax_Forms_Post_Request - Fatal编程技术网

Jquery $\u POST和$\u请求数据在location.reload()上丢失

Jquery $\u POST和$\u请求数据在location.reload()上丢失,jquery,ajax,forms,post,request,Jquery,Ajax,Forms,Post,Request,我在父html表单中有一个ajax表单(不是我的代码!)。用例场景是提示用户输入配置文件信息,打开弹出窗口向帐户添加多个联系人,然后继续填写配置文件的其余部分 “联系人”框允许用户添加新联系人、编辑现有联系人或删除联系人 问题在于,当用户提交ajax表单进行添加、编辑或删除时,整个页面将刷新,并且父表单中所有未保存的$\u POST数据都将丢失 如果我在页面上按enter键,或者按Ctrl+$或Cmd+R,则$\u POST数据不会丢失。以下是我读过的试图弄明白这一点的几篇文章: )

我在父html表单中有一个ajax表单(不是我的代码!)。用例场景是提示用户输入配置文件信息,打开弹出窗口向帐户添加多个联系人,然后继续填写配置文件的其余部分

“联系人”框允许用户添加新联系人、编辑现有联系人或删除联系人

问题在于,当用户提交ajax表单进行添加、编辑或删除时,整个页面将刷新,并且父表单中所有未保存的$\u POST数据都将丢失

如果我在页面上按enter键,或者按Ctrl+$或Cmd+R,则$\u POST数据不会丢失。以下是我读过的试图弄明白这一点的几篇文章:

  • )
我是一名PHP开发人员,也是一名AJAX新手,请原谅我在这里缺乏知识。我试图用
returnfalse来模拟Ctrl+R效应
位置。重新加载(true)
,但两者都不起作用。我错过了什么

以下是我的弹出框代码:

$("#contact-dialog").dialog({
    autoOpen: false,
    width: 600,
    modal: true,
    buttons: {
      "Ok": function() {
        var bValid = true;
        allFields.removeClass( "ui-state-error" );

        bValid = bValid && checkLength( contact_first_name, "first name", 2, 64 );
        bValid = bValid && checkLength( contact_last_name, "last name", 2, 64 );
        bValid = bValid && checkLength( title, "title", 1, 64 );
        bValid = bValid && checkLength( phone, "phone", 6, 30 );
        bValid = bValid && checkLength( email_address, "email_address", 5, 128 );

        if ( bValid ) {
          if (contact_count % 2) {
          $( "#contacts" ).append();
          } else {
          $( "#contacts" ).append();
          }
          contact_count++;

          $.ajax({
                type: "POST",
                url: "facility-categories-ajax.php",
                data: { 
                    type: 'add-to-contacts',
                    input: $('#contact-dialog-link').val(),
                    cid: $('#contact-dialog-id').val(),
                    first_name: contact_first_name.val(),
                    last_name: contact_last_name.val(),
                    title: title.val(),
                    phone: phone.val(),
                    email_address: email_address.val(),
                    twitter: twitter.val(),
                    facebook: facebook.val(),
                    linkedin: linkedin.val()
                },
                complete: function(data) {
                    location.reload();
                    return false;
                }
          });

          $(this).dialog("close");
        }
      },
      Cancel: function() {
        contact_update.val('-1');
        $(this).dialog("close");
      }
    },
    close: function() {
      allFields.val("").removeClass("ui-state-error");
      tips.text("");
      if (contact_update.val() > -1) {
        delete_contact(contact_update.val());
      }
    }
  });
我感谢你的帮助

删除local.reload()以停止刷新页面。您可以删除整个complete:function(){},因为它只在ajax调用成功返回后才有用。并考虑添加另一个按钮,如“完成更改”,将关闭对话框。 e、 g:


目标是添加多个联系人并将数据发送回父窗体,而不会丢失父窗体中尚未保存的任何数据。感谢您的帮助!我最终使用了jQuery模式对话框,因为我需要在不刷新页面的情况下显示新数据,也不需要从另一个文件中拉入新数据。不过,这确实回答了这个问题。
 (...)
 buttons: {
    "Done": function() {
        $(this).dialog('close');
    },
(...)