0

Jquery、Ajax、PHP、および HTML フォームを実行しているサイトがあります。これは 2 ページを使用します。

ページ...

Example.php & Processexample.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 に答える