Jquery、Ajax、PHP、および HTML フォームを実行しているサイトがあります。これは 2 ページを使用します。
ページ...
Example.php & Processexample.php
example.php の編集ボタンをクリックすると、フォームが NyroModal ウィンドウに表示され、Processexample.php に投稿され、Ajax を使用して投稿された顧客データを編集できます。
ユーザーが Porcessexample.php で [保存] をクリックすると、SQL が更新され、成功メッセージがモーダル ボックス (エンドユーザー) にポストされます。
ここに問題があります...
- processexample.php で (データ) 成功が呼び出された後、NyroModal ウィンドウを閉じることができません。以下のJQ/Javascriptでタイムアウトを設定してみましたがエラーになります。
setTimeout("$.nyroModal.close()", 4000);
- 更新されたデータを自動的に表示する 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>