Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,028

HOME > PHP > PHP Forum > ถามเรื่องการ return ค่าจากใน Callback ของ jQuery ไปให้functionอื่นครับ



 

ถามเรื่องการ return ค่าจากใน Callback ของ jQuery ไปให้functionอื่นครับ

 



Topic : 090821



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์




Code
function check(){ var checkError = false; $('.PagePanel :input').each(function(){ var getvalid = $(this).attr('id'); var getvalues = $('#'+getvalid).val(); if(getvalues == ""){ checkError |= true; }else{ $.get('checkEmailUsed.php',{email:getvalues}, function(data){ if(data == 1){ checkError |= true; }else{ checkError |= false; } return checkError; }); } }); if(checkError == false){ alert('เรียบร้อย'); }else{ alert('กรอกข้อมูลไม่ครบ'); }


ตรงcodeสีแดงน่ะครับ คือตรงcallback ที่มันเรียกfunction ผมให้เช็คค่าเสร็จแล้วจะกำหนดให้ checkError เป็นtrue หรือfalse

ที่นี้เหมือนว่าในfunction มันไม่ได้เซ็ทค่าให้ตัวแปรcheckError ที่ผมประกาศไว้ด้านบน

จากที่ผมทำมันเข้าเงื่อนไขถูกต้องหมดแล้วครับ เพียงแต่ว่าเซ็ทค่าให้ตัวแปรcheckError ไม่ได้ไม่ทราบว่ามันไม่เห็นตัวแปรนี้หรือยังไง

หรือต้องreturn ยังไงครับผมลองประกาศไว้บนสุดที่อยู่นอกfunctionทั้งหมดแล้วก็ไม่ได้ครับ


ปล.ไม่รู้ผมอธิบายคำถามถูกหรือเปล่า-*- ขอบคุณครับ



Tag : PHP, jQuery









ประวัติการแก้ไข
2013-02-13 16:13:22
2013-02-13 16:35:11
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-02-13 16:12:33 By : sirbabank View : 3060 Reply : 34
 

 

No. 1



โพสกระทู้ ( 752 )
บทความ ( 3 )



สถานะออฟไลน์
Blogger

ฟังก์ชัน Callback Parameters มันรับค่าอะไรมาครับ?






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:22:10 By : ALTELMA
 


 

No. 2



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ลองเปลี่ยน call back data เป็นตัวอักษรดูดีกว่าครับ เช่น "Existing"
<script>
var checkError = false;
function check(){	
	$('.PagePanel input').each(function(){
	var getvalid = $(this).attr('id');
	var getvalues = $('#'+getvalid).val();
	if(getvalues == ""){
		checkError |= true;
	}else{
		$.get('checkEmailUsed.php',{email:getvalues},function(data){
			if(data == "Existing"){
				checkError |= true;
			}else{
				checkError |= false;
			}
			return checkError;
		});
	}
});

if(checkError == false){
alert('?????????');
}else{
alert('????????????????');
}
</script>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:24:45 By : sakuraei
 

 

No. 3



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : sakuraei เมื่อวันที่ 2013-02-13 16:24:45
รายละเอียดของการตอบ ::
.each ใช้ทำอะไรหรือครับ และมีข้อดี อย่างไรหรือครับพี่

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:29:34 By : Ex-[S]i[L]e[N]t
 


 

No. 4



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : ALTELMA เมื่อวันที่ 2013-02-13 16:22:10
รายละเอียดของการตอบ ::
callbackก็รับค่าจากที่get อะครับ ที่ไปเรียกไฟล์ checkEmailUsed.php ในไฟล์php นี้ผมให้echoค่ากลับมาโดยจะเป็น 1หรือ0

นำค่าที่return มาจากphp ไปใช้ก็คือ dataตามcodeครับ
function(data){

}

ปัญหาจริงๆคือผมต้องการให้ในcallbackมันกำหนดค่าให้ checkError ที่ผมประกาศไว้ภายใต้ function check()

จากที่ผมทำมันเข้าเงื่อนไขถูกต้องหมดแล้วครับ เพียงแต่ว่าเซ็ทค่าให้ตัวแปรcheckError ไม่ได้ไม่ทราบว่ามันไม่เห็นตัวแปรนี้หรือยังไง

หรือต้องreturn ยังไงครับผมลองประกาศไว้บนสุดที่อยู่นอกfunctionทั้งหมดแล้วก็ไม่ได้ครับ



ประวัติการแก้ไข
2013-02-13 16:33:49
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:31:51 By : sirbabank
 


 

No. 5



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


.each() ใช้สำหรับค้นหา element ที่อยู่ในขอบเขตที่เราระบุเอาไว้ เช่น
<script src="http://code.jquery.com/jquery-latest.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<div id="line1">
A:<input type="text" value="AA" /> <br />
B:<input type="text" value="BB" /> <br />
C:<input type="text" value="CC" /> <br />
D:<input type="text" value="DD" /> <br />
<div>

<script>
$("div#line1 input").each(function(){
	alert($(this).val());
});
</script>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:36:06 By : sakuraei
 


 

No. 6



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : Ex-[S]i[L]e[N]t เมื่อวันที่ 2013-02-13 16:29:34
รายละเอียดของการตอบ ::
.each ผมใช้ให้มันวนเอา tag input ของทั้งเพจออกมาเช็คครับ

เข้าใจว่าเหมือน foreach() นะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:36:57 By : sirbabank
 


 

No. 7



โพสกระทู้ ( 342 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ผมก็นะ อยู่ในวงการนี้มานานพอควร แต่ไม่เคยเห็น |= ครับ

เคยเห็นแต่
!= ไม่เท่ากับ
= กำหนดค่า
+= กำหนดค่าแบบต่อสตริง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:37:08 By : triplea
 


 

No. 8



โพสกระทู้ ( 342 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


และลักษณะโค้ดเช่นนี้ ไม่เรียกว่าการ return ค่าครับ

เหมือนผมเห็นหลายๆคน

ทั้งเด็ก จบใหม่ จบเก่า หรือผู้ใหญ่บางคน

เรียก
java แทนความหมาย javascript
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:42:27 By : triplea
 


 

No. 9



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : triplea เมื่อวันที่ 2013-02-13 16:37:08
รายละเอียดของการตอบ ::
ที่ผมใช้ |= ก็คือว่าผมกำหนดค่าตัวแปรcheckError ไว้ให้เป็น falseครับ ถ้าเกิดว่าเข้าเงื่อนไขที่มันไม่ถูกต้องก็จะให้มันorกับ trueครับ

false or true ก็เท่ากับtrue หมายความว่าถ้าผิดเงื่อนไข1ครั้งมันก็จะเป็นtrueแล้ว หลังจากนั้นมันจะorกับอะไรมันก็จะเป็น true แปลว่ามีจุดผิดจุดเดียว ผมก็จะไม่ให้ submit from ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:45:05 By : sirbabank
 


 

No. 10



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : triplea เมื่อวันที่ 2013-02-13 16:42:27
รายละเอียดของการตอบ ::
ผมก็ยังเป็นนักศึกษาครับความรู้ก็ถูกๆผิดๆ ถ้างั้นรบกวนพี่บอกผมหน่อยครับว่าลักษณะนี้เค้าเรียกว่าอะไรหรอครับ

ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:50:22 By : sirbabank
 


 

No. 11



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ผมว่า จขกท. เข้าใจถูกแล้วครับ แต่อาจปรับแก้นิดหน่อย

ถามเรื่องการ return ค่าจาก Callback function ครับ

สรุปแล้วได้ลองเปลี่ยนค่าที่ return กลับมาจากไฟล์ checkEmailUsed.php .ให้เป็น echo "Existing"; แทน 0 | 1 หรือยังครับ


ประวัติการแก้ไข
2013-02-13 16:55:59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:52:50 By : sakuraei
 


 

No. 12



โพสกระทู้ ( 342 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : sirbabank เมื่อวันที่ 2013-02-13 16:50:22
รายละเอียดของการตอบ ::
ขออภัยครับ

ผมลืมว่า จขกท ใช้ logical operand

ผมขออภัยจริงๆ ที่บอกว่าไม่เคยเห็น


เอาเป็นว่า |= ผมขออภัย


แต่เรื่องการ return ค่า
จขกท ยังเข้าใจไม่ถูกต้อง

จะให้บอกทั้งหมดก็ใช่ที่

แต่แนะนำ จขกท ไว้ว่า

ที่ จขกท ทำอยู่ มันเป็นเรื่อง ของ scope variable ครับ

ซึ่งคำสั่ง return อะไรนั่น ไม่ได้สำคัญอะไรเลย (ตามโค้ดที่ให้มา)

ลองดูอีกทีครับ ถ้าไม่ได้จริงๆ มาใหม่ แล้วจะแนะนำอีกที

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 16:56:30 By : triplea
 


 

No. 13



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

เส้นผมบังภูเขา
ผิดที่ |= นั่นแหละครับ
เป็น bitwise or assignment
เพราะถ้าเราใช้ |=
หากมีการเซ็ตค่า checkError ให้เป็นจริงไปแล้วครั้งนึง
มันจะไม่มีทางกลับมาเป็น false ได้เลยครับ

ให้ใช้ = ปกติครับ

checkError = true;
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:03:59 By : cookiephp
 


 

No. 14



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ทำไมไม่ปรับแนวคิดเสียใหม่ ทำให้ยุ่งยากน้อยลงดีกว่า
<script>
function check(){	
	$('.PagePanel input').each(function(){
	var getvalid = $(this).attr('id');
	var getvalues = $('#'+getvalid).val();
	if(getvalues == ""){
		alert('คุณป้อนข้อมูลไม่ครบทุกช่อง!!!');
	}else{
		$.get('checkEmailUsed.php',{email:getvalues},function(data){
			if(data == "Existing"){
				alert('อีเมล์นี้มีอยู่ในฐานข้อมูลแล้ว กรุณาตรวจสอบอีกครั้งครับ');
			}else{
				alert('คุณสามารถใช้อีเมล์นี้ได้ '+getvalues );
			}
		});
	}
});

</script>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:04:34 By : sakuraei
 


 

No. 15



โพสกระทู้ ( 342 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : cookiephp เมื่อวันที่ 2013-02-13 17:03:59
รายละเอียดของการตอบ ::
เส้นผมบังภูเขา
ผิดที่ |= นั่นแหละครับ
เป็น bitwise or assignment
เพราะถ้าเราใช้ |=
หากมีการเซ็ตค่า checkError ให้เป็นจริงไปแล้วครั้งนึง
มันจะไม่มีทางกลับมาเป็น false ได้เลยครับ

ให้ใช้ = ปกติครับ

checkError = true;


จำเลย ไม่ใช่ |= ครับ

จริงอยู่ที่ ถ้าเป็น true แล้วจะไม่สามารถเป็น false ได้อีก

และในโค้ดที่ จขกท ให้มา ก็ไม่มีทางเป็น ไม่มีทางที่จะเป็น true ก่อนคำสั่งอื่นใด

การใช้
checkError = true(false) เป็นเรื่องที่ง่ายกว่าก็จริงครับ

แต่ จขกท ไม่ได้ผิดที่ตรงนี้ครับ


ผิด
1. เข้าใจการ return ค่าของ function ไม่ถูกต้อง
2. เข้าใจ scope variable ไม่ถูกต้อง

แค่นี้ครับ ที่อยากฝาก จขกท ไว้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:14:55 By : triplea
 


 

No. 16



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : cookiephp เมื่อวันที่ 2013-02-13 17:03:59
รายละเอียดของการตอบ ::
หากมีการเซ็ตค่า checkError ให้เป็นจริงไปแล้วครั้งนึง
มันจะไม่มีทางกลับมาเป็น false ได้เลยครับ

ที่พี่บอกผมนี้ถูกต้องแล้วครับ ผมต้องการแบบนี้ไงครับ ถ้าเกิดว่ามันเป็น trueไปแล้วมันจะไม่กลับมาเป็นfalse ได้อีกเพราะถ้าเป็นtrueแล้ว

ก็เท่ากับว่ามีจุดผิด1จุดแล้วครับ เพียงแค่มีจุดผิด1จุดก็จะไม่สามารถsubmit fromได้ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:17:17 By : sirbabank
 


 

No. 17



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : sakuraei เมื่อวันที่ 2013-02-13 17:04:34
รายละเอียดของการตอบ ::
ผมถามนิดครับ พี่เข้าใจว่าcode ของผมมันเข้าเงื่อนไขไม่ถูกต้องหรือเปล่าครับ คือค่าที่ได้มาจากไฟล์ checkEmailUsed.php

ผมสามารถนำมาเช็คเงื่อนไขแล้ว alertดูแล้วครับ มันเข้าเงื่อนไขได้ถูกต้องหมดแล้วครับ

เพียงแต่ว่าตอนเข้าเงื่อนไขไปแล้วผมต้องการให้มันทำ checkError |= false หรือ checkError |=true ครับ

จริงๆแล้วโค๊ดที่ผมทำมันมีเช็คข้อมูลอย่างอื่นอีกหลายอย่างนอกจากเช็คEmail ว่าในDBมีEmailนี้อยู่หรือยัง คือส่วนที่เช็คEmailกับในDB

ผมเพิ่งจะมาทำเพิ่มทีหลังครับ ซึ่งก่อนหน้านี้การใช้ |= มันเวิร์คดีอยู่แล้วครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:22:51 By : sirbabank
 


 

No. 18



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ครับ เอาจริงๆ ผมไม่ได้มองขนาดนั้น
เพราะผมเห็น |= ก่อนอย่างอื่น เพราะมันเบสิคสุด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:25:03 By : cookiephp
 


 

No. 19



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


Quote:
ถ้ายังอยากใช้ 0|1 อยู่ล่ะก็

ลองใช้แบบนี้ดูครับ

if(data.localeCompare( "0" ))



อันนี้พี่เข้าใจครับ เพราะพี่ก็ใช้อยู่บ่อยๆ ไอ้เจ้า bitwise operand |= &=
แต่พี่คิดว่ามันมีปัญหาตอนเปรียบเทียบใน if นี่แหล่ะ ยังไงทดลองโค้ดที่พี่ให้ไปด้านบนนี้ด้วย


ประวัติการแก้ไข
2013-02-13 17:28:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:25:08 By : sakuraei
 


 

No. 20



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : sakuraei เมื่อวันที่ 2013-02-13 17:25:08
รายละเอียดของการตอบ ::
ครับผม อันนี้ผมมีเช็คเงื่อนไขนี้อยู่เหมือนกันครับเพราะว่าตอนรันด้วยchrome มันจะเทียบค่าที่ได้มาจากcheckEmailUsed.php กับเลข 1 แล้ว

มันมองว่าไม่เหมือนกันทั้งๆที่ชนิดข้อมูลเป็นstring เหมือนกันแต่ว่าในfirefox รันได้ถูกต้องปกติ

สรุปว่าน่ะครับ codeของผมนี้เข้าเงื่อนไขถูกต้องแล้วครับ เข้าเงื่อนไขได้ถูกต้องแล้วตรงแล้วจริงๆครับ คิดว่าไม่ต้องแก้ไขอะไรกับการนำตัวแปร

มันเปรียบเทียบค่าตอนเช็คif แล้วครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:31:37 By : sirbabank
 


 

No. 21



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 18 เขียนโดย : cookiephp เมื่อวันที่ 2013-02-13 17:25:03
รายละเอียดของการตอบ ::
ผมก็อธิบายให้ฟังครับว่ามีเหตุผลอะไรถึงใช้ |=

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:33:36 By : sirbabank
 


 

No. 22



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ดูหมดแล้วครับ
จะเฉลยให้ครับ ว่าทำไม

จริงๆ มันเป็นเรื่องของ "เวลาที่ตรวจสอบ" ค่า checkError ครับ
ดูตรงนี้ดีๆ นะครับ

Code (JavaScript)
$.get('checkEmailUsed.php',{email:getvalues}, function(data) {
	if(data == 1) {
		checkError |= true;
	} else {		
		checkError |= false;
	}
	return checkError;
});


callback นี้จะถูกทำงานก็ต่อเมื่อ มีการติดต่อไปยังเซิร์ฟเวอร์ และรัน checkEmailUsed.php เรียบร้อย

"ซึ่ง" กว่าจะถึงตอนนั้น เราก็ได้เสร็จสิ้นการทำงานของ ฟังก์ชั่น check() ไปแล้วครับ

Code (JavaScript)
function check() {
	var checkError = false;
	
	$('.PagePanel :input').each(function() {
		var getvalid = $(this).attr('id');
		var getvalues = $('#'+getvalid).val();
		
		if(getvalues == "") {
			// เงือนไข #1
			checkError |= true;
		} else {
			// เงือนไข #2
			// ตรงนี้จะทำงานท้ายสุด หลังจบฟังก์ชั่น check() ไปแล้ว
			// เพราะมันเป็น async function
			$.get('checkEmailUsed.php',{email:getvalues}, function(data) {
				if(data == 1) {
					checkError |= true;
				} else {		
					checkError |= false;
				}
				return checkError;
			});
		}
	});
	// ดังนั้นเมื่อมาตรวจสอบตรงนี้ จะเป็นจริงได้ในเงื่อนไข #1 เท่านั้น
	// แต่เงื่อนไข #2 จะไม่มีวันเป็นจริงเลย
	if(checkError == false) {
		alert('เรียบร้อย');
	} else {
		alert('กรอกข้อมูลไม่ครบ');
	}
}


get กันมั้ยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:40:52 By : cookiephp
 


 

No. 23



โพสกระทู้ ( 3,155 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:45:12 By : sakuraei
 


 

No. 24



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : triplea เมื่อวันที่ 2013-02-13 17:14:55
รายละเอียดของการตอบ ::
1. เข้าใจการ return ค่าของ function ไม่ถูกต้อง

2. เข้าใจ scope variable ไม่ถูกต้อง


1.ผมเข้าใจว่าจะต้องreturn ตัวแปรcheckError ออกมาจากในfunction เพราะคิดว่ามันจะไม่เห็นค่าของตัวแปรที่เปลี่ยนไปก็เลยใส่ returnไปด้วยครับ

2. เรื่องscope variable ผมเข้าใจว่า local scope ก็หมายถึงประกาศตัวแปรใช้แค่ภายในfunctionนั้นๆ ส่วนถ้าเป็นglobal scopeก็คือประกาศ

ตัวแปรไว้นอกfunction โดยที่ทุกfunctionก็จะสามารถเรียกตัวแปรตัวนั้นมาใช้ได้ ผมเข้าใจแบบนี้ถูกหรือเปล่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:47:17 By : sirbabank
 


 

No. 25



โพสกระทู้ ( 342 )
บทความ ( 2 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:48:32 By : weaned
 


 

No. 26



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 22 เขียนโดย : cookiephp เมื่อวันที่ 2013-02-13 17:40:52
รายละเอียดของการตอบ ::
สรุปว่าประเด็นอยู่ที่มันเป็นasync หรอครับ งั้นผมต้องทำปิด asyncใช่หรือเปล่าครับ

ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 17:52:05 By : sirbabank
 


 

No. 27



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ดังนั้นแนวคิดในการแก้คือ

ตอน submit ฟอร์มเนี่ย

ก็ให้เราตรวจสอบเบื้องต้นก่อน ว่ากรอกข้อมูลครบยัง ถ้ายังไม่ครบ ก็แสดงเลยว่ากรอกไม่ครบ และไม่ให้ผ่าน

แต่ถ้ากรอกครบแล้วทั้งหมด ก็ให้เริ่มตรวจสอบข้อมูลที่จำเป็นต้องตรวจสอบระยะไกล
โดยให้ส่งข้อมูล "ทั้งหมด" ไปตรวจ ไม่ใช่ส่งไปตรวจทีละอัน เสียเวลาเปล่า
ระหว่างนั้นก็ให้ disabled ปุ่ม submit ของฟอร์ม
และค่อย enable มันกลับหลังจากได้ผลกลับมาจาก server แล้ว

Code (JavaScript)
// สมมติมีตัวแปรที่อ้างถึงฟอร์มชื่อ form
// สมมติมีตัวแปรที่อ้างถึงปุ่ม submit ชื่อ form.submitButton
function check() {
	var emails = []; // Array ของอีเมล์ทั้งหมด
	var inputs = $('.PagePanel :input');
	// ลูป jquery object ทั้งหมด สังเกตว่าเราเรียก $() แค่ครั้งเดียว เร็วกว่ามาก
	for (var i = 0; i < inputs.length; i++) {
		var email = inputs[i].val();
		if(email == "") { // ถ้ามีอันหนึ่งอันใดไม่ได้กรอก
			alert("กรอกข้อมูลไม่ครบ");
			return; // ออกเลย ไม่ต้องเสียเวลามาเช็คอีกครั้ง
		}
		emails.push(email);
	});
	form.submitButton.disabled = true; // ทำให้ปุ่ม submit ใช้งานไม่ได้
	// เราเรียก get แค่ครั้งเดียว โดยส่งข้อมูลทั้งหมดไปตรวจ แทนที่จะส่งไปตรวจหลายๆ ครั้ง
	$.get(
		"checkEmailUsed.php",
		// ส่ง email ทั้งหมดไปตรวจ โดยรวมกันด้วย \n ซึ่งทางฝั่งเซิร์ฟเวอร์ก็ใช้ explode() แยกเอา
		{ email: emails.join("\n") },
		function (data) {
			form.submitButton.disabled = false; // ทำให้ปุ่ม submit ใช้งานได้อีกครั้ง
			if (data != "1") {
				alert("มีอีเมล์ที่ใช้งานไม่ได้");
				return;
			}
			// ทำการ submit ฟอร์มตรงนี้
			form.submit();
		}
	);
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:05:50 By : cookiephp
 


 

No. 28



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

โค้ดให้เป็นแนวคิดนะครับ คงเอาไปใช้เลยไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:06:48 By : cookiephp
 


 

No. 29



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ไม่แนะนำให้ใช้ sync นะครับ อาจจะทำให้เพจค้างหากเซิร์ฟเวอร์ไม่ตอบกลับเป็นเวลานานๆ (กรณีเซิร์ฟเวอร์ทำงานช้า หรือล่ม)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:16:32 By : cookiephp
 


 

No. 30



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณพี่น้องเปรม มากๆครับ

อุตส่าสละเวลาไปเทสมาให้ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:17:55 By : sirbabank
 


 

No. 31



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 22 เขียนโดย : cookiephp เมื่อวันที่ 2013-02-13 17:40:52
รายละเอียดของการตอบ ::
("กว่าจะถึงตอนนั้น เราก็ได้เสร็จสิ้นการทำงานของ ฟังก์ชั่น check() ") คือมันผ่านเงื่อนไขไปแล้ว เลยไม่ทำการตรวจสอบหรือครับ



ประวัติการแก้ไข
2013-02-13 18:29:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:28:44 By : Ex-[S]i[L]e[N]t
 


 

No. 32



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ไม่ได้เทสต์ครับ แค่อ่านและวิเคราะห์เฉยๆ ผมไม่ทุ่มเทขนาดนั้นหรอกครับ 555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:29:25 By : cookiephp
 


 

No. 33



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 31 เขียนโดย : Ex-[S]i[L]e[N]t เมื่อวันที่ 2013-02-13 18:28:44
รายละเอียดของการตอบ ::
ไม่ใช่ว่ามันไม่ตรวจสอบครับ
แต่มันตรวจสอบค่าที่อาจจะยังไม่ได้มีการเปลี่ยนแปลงครับ
เพราะเราไปเปลี่ยนแปลง checkError ใน callback ซึ่งจะทำงานหลัง checkError จบไปแล้ว (เพราะมันเป็น async callback)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:32:51 By : cookiephp
 


 

No. 34



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 33 เขียนโดย : cookiephp เมื่อวันที่ 2013-02-13 18:32:51
รายละเอียดของการตอบ ::
อ๋อ... ขอบคุณครับ ความรู้ใหม่ครับ +1 thank

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-13 18:34:50 By : Ex-[S]i[L]e[N]t
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเรื่องการ return ค่าจากใน Callback ของ jQuery ไปให้functionอื่นครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่