ช่วยด้วยครับขอคำแนะนำเรื่องการ reload ไฟล์ใน ajax ครับ
รบกวนสอบขอคำแนะนำหน่อยครับ พอดีผมลองเขียนฟอร์มสมัครสมาชิก+รูป โดยใช้ ajax ครับ ตอนนี้สามารถสมัครได้แล้ว แต่ตอนบันทึกข้อมูลเรียบร้อยแล้วผมอยากให้แสดงฟอร์มรับสมัครใหม่โดยให้เรียก NewReg() อีกครั้งหนึ่ง
ผมลองเรียกพิมพ์ NewReg();
1. โดยเอาไปต่อจาก frm.submit(); ทำงานได้ครับ แต่บางครั้ง จะบันทึกไม่ได้ เหมือนว่าจะเรียก NewReg();เร็ว โดยเฉพาะ chorme ครับ
2ลองใช้คำสั่ง setTimeout("NewReg();", 3000); ก็เจอปัญหาเดิมอีกครับ
3.เอาไปวางต่อ alert('บันทึกข้อมูลเรียบร้อยแล้ว'); ไม่ได้ครับ มันไม่กลับไปแสดง มี error ประมาณว่าไม่รู้จัก NewReg(); ครับ
4.ลองใช้ window.location="index.php?aa=1";ก็ไม่ กลับไปหน้า index ครับ
ผมรบกวนขอคำแนะนำด้วยครับ ขอบคุณมากๆๆครับ
หน้าหลัก inex.php
<script>
function NewReg() {
var URL = "reg.php";
var data = "action=NewReg";
ajaxLoad('get', URL, data, 'formDiv');
}
function reg2DB() {
if (ChkValid() == true){
frm.submit();
} else
return false;
}
</script>
reg.php หน้าที่ ส่งค่า ไปหา
<?
.......
echo "<script>
alert('บันทึกข้อมูลเรียบร้อยแล้ว');
</script>";
?>
ผมลองเรียกพิมพ์ NewReg();
1. โดยเอาไปต่อจาก frm.submit(); ทำงานได้ครับ แต่บางครั้ง จะบันทึกไม่ได้ เหมือนว่าจะเรียก NewReg();เร็ว โดยเฉพาะ chorme ครับ
2ลองใช้คำสั่ง setTimeout("NewReg();", 3000); ก็เจอปัญหาเดิมอีกครับ
3.เอาไปวางต่อ alert('บันทึกข้อมูลเรียบร้อยแล้ว'); ไม่ได้ครับ มันไม่กลับไปแสดง มี error ประมาณว่าไม่รู้จัก NewReg(); ครับ
4.ลองใช้ window.location="index.php?aa=1";ก็ไม่ กลับไปหน้า index ครับ
ผมรบกวนขอคำแนะนำด้วยครับ ขอบคุณมากๆๆครับ
หน้าหลัก inex.php
<script>
function NewReg() {
var URL = "reg.php";
var data = "action=NewReg";
ajaxLoad('get', URL, data, 'formDiv');
}
function reg2DB() {
if (ChkValid() == true){
frm.submit();
} else
return false;
}
</script>
reg.php หน้าที่ ส่งค่า ไปหา
<?
.......
echo "<script>
alert('บันทึกข้อมูลเรียบร้อยแล้ว');
</script>";
?>
ในทางปฏิบัติ ถ้าต้องการทำคำสั่งหลังจากการตอบกลับแล้ว ก็ต้องใช้ทำคำสั่งใน onreadystatechange ครับ ซึ่งถ้าเป็น JQuery หรืออื่นๆอาจมีวิธีเรียกใช้ต่างๆกันนะครับ
หรือ ให้ส่ง Ajax แบบ synchronous แทน
2.-4. ผมไม่แน่ใจในปัญหา แต่อยากเตือนว่า ในหน้าที่ Ajax เรียกเราจะไม่สามารถใส่ Javascript ได้นะครับ ดังนั้น ฟังก์ขั่น NewReg และ regDB จะต้องใส่ไว้ที่ไฟล์ js ภายนอก