0

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

页...

示例.php & 进程示例.php

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

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

以下是问题...

  1. 在 processexample.php 上调用(数据)成功后,我无法关闭 NyroModal 窗口。我尝试在下面的 JQ/Javascript 中设置超时,但发生错误。

setTimeout("$.nyroModal.close()", 4000);

  1. 如何让 example.php 页面自动显示更新的数据,或者在单击#send 按钮并在模式窗口中显示成功后重新加载页面。

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 代码--> 查看问题所在代码中的粗体文本。

    $(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>
4

1 回答 1

0

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

于 2013-06-07T02:16:24.780 回答