ลำดับการรันโปรแกรม

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ลำดับการรันโปรแกรม

ลำดับการรันโปรแกรม

เนื่องจากว่าผมต้องการเขียนโปรแกรมเช็ค email ด้วย jquery ดังนี้ครับ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="include/jquery.js"></script>
   
  <script>
function check(){
 
alert('1');
 
        $.ajax({
            type:"POST",
            url:"response.php",
            data:{typeData:"ch_email",email:$("#email").val()},
            success:function(response){
                alert('2');
             
            }      
        });
         
alert('3');
}  
 
  </script>
   
</head>
 
<body>
<form name="form1" method="post" action="">
  <label>
  <input name="email" type="text" id="email" />
  <input name="click" type="button" id="click" value="CLICK" onClick="check()">
  </label>
</form>
</body>
</html>
 
 
ซึ่งจากโค้ดผมได้ให้โปรแกรม alert ลำดับการ Run ออกมา ปรากฏว่าโปรแกรม alert ออกมา คือ 1,3,2
1
2
ซึ่งผมเข้าใจว่าอาจเป็นเพราะตัว $.ajax ทำงานช้ากว่าจะดึงข้อมูลออกมาได้ จึงไม่ทราบว่าจะมีวิธีใดที่จะให้โปรแกรมทำงานเป็น 1,2,3 หรือไม่ครับ
ขอบคุณมากๆๆครับ

 



Ronnaphome 24-10-2010 22:11:09

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  <script>
function check(){
 
alert('1');
 
        $.ajax({
            type:"POST",
            url:"response.php",
            data:{typeData:"ch_email",email:$("#email").val()},
            success:function(response){
                alert('2');
                alert('3');
            }      
        });
         
 
}  
 
  </script>

 



Ninenik 25-10-2010
 ความคิดเห็นที่ 2

แล้วถ้าหากว่า ผมเขียนโค้ดดังนี้

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  <script>
function check(){
 
var yReturn = true;
 
        $.ajax({
            type:"POST",
            url:"response.php",
            data:{typeData:"ch_email",email:$("#email").val()},
            success:function(response){
                if(response == 'failed'){
                                    yResult = false;
                }
            }      
        });
 
    return yReturn;
 
}  
 
  </script>
 
ผมให้โปรแกรมหยุดทำงานหาก email ซ้ำ แต่ปรากฏว่ามัน return true ทุกครั้ง ไม่ทราบว่าผมทำอะไรผิดหรือปล่าวครับ
ขอบคุณครับ

 



Ronnaphome 25-10-2010 13:49
 ความคิดเห็นที่ 3

 ตามที่เข้าใจ ว่า $.ajax ทำงานช้ากว่าจะดึงข้อมูลออกมาได้

 
ลองเอา return yReturn;   เข้าไปไว้ใน success
 
1
2
3
4
if(response == 'failed'){ 
    yResult = false; 
return yReturn; 


Ninenik 25-10-2010
 ความคิดเห็นที่ 4

ขอบคูณมากๆๆครับ เด๋ยวผมจะลองเอาไปเขียนดูครับ ได้ไม่ได้จะมา share กันครับ



Ronnaphome 25-10-2010 14:24
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ