成功后,Jquery Ajax NyroModal页面重新加载

时间:2013-06-06 22:14:46

标签: php jquery ajax forms

我有运行Jquery,Ajax,PHP和HTML表单的站点。它使用两页。

页面...

Example.php& Processexample.php

当您单击example.php上的编辑按钮时,会在NyroModal窗口中弹出一个表单,发布到Processexample.php,并允许您编辑使用Ajax发布的客户数据。

用户单击Porcessexample.php上的保存后,将进行SQL更新,并将成功消息发回模态框(最终用户)。

以下是问题......

  1. 在processexample.php上调用(数据)成功后,我无法关闭NyroModal窗口。我尝试在JQ / Javascript中设置Timeout但发生错误。
  2. setTimeout(“$。nyroModal.close()”,4000);

    1. 如何让example.php页面自动显示更新的数据,或者在点击#send按钮后重新加载页面并在模态窗口中显示成功。
    2. 有关processexample.php的HTML表单代码

      <form id="AjaxForm" name="AjaxForm" action="#" method="post">
      
      <input name="submitform" type="hidden" value="1" 
      
      <button id="send">Save Client</button>
      

      有关processexample.php的JS代码 - &gt;请参阅问题代码中的粗体文本。     

          $(document).ready(function() {
      
      
          $("#AjaxForm").submit(function() { return false; });
      
      
          $("#send").on("click", function(e){
      
              var idval    = $("#client").val();
              var calval    = $("#view").val();
              var emailval  = $("#customer_email").val();
              var nameval   = $("#customer_name").val();
              var phoneval  = $("#customer_phone").val();
      
      
              var msgval    = $("#customer_note").val();
              var msglen    = msgval.length;
              var mailvalid = validateEmail(emailval);
      
      
              if(mailvalid == true && msglen >= 4) {
                  // if both validate we attempt to send the e-mail
                  // first we hide the submit btn so the user doesnt click twice
                  $("#send").replaceWith("<em>sending...</em>");
      
                  $.ajax({
                      type: 'POST',
                      url: 'saveclient.php',
                      data: $("#AjaxForm").serialize(),
                      success: function(data) {
                          if(data == "true") {
                              $("#AjaxForm").fadeOut("fast", function(){
                                  $(this).before("<p><strong>Success! Your information has been updated.</strong></p>");
                                  **setTimeout("$.nyroModal.close()", 4000);**
                              });
                          }
                      }
                  });
              }
          });
      });
      </script>
      

1 个答案:

答案 0 :(得分:0)

我能够自己解决这个问题。使用location.reload();成功召集之后。