PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

สอบถามหน่อยนะคับว่า จะมี solution แก้ไขในกรณีนี้อย่างไรคับ

สอบถามหน่อยนะคับว่า จะมี solution แก้ไขในกรณีนี้อย่างไรคับ

function checkDateInPromotionPeriod(){
var x ;
$.post(URL,Data,
function(callback){
 if(callback.result == 'true'){
 alert("  กรุณาตรวจสอบ rn • ช่วงเวลาโปรโมชั่นที่ระบุถูกกำหนดในรายการโปรโมชั่นอื่นแล้ว !");
                x =  false; 
}else if(callback.result == 'false'){
                x =  true;   
            }
         },'json')
return x ; // ปัญหาอยู่ตรงนี้คับ     
}


ประเดิมด้วยการสอบถามนะคับ (jQuery ผมค่อนข้างจะใหม่จริงๆ)
 คือฟังก์ชั่นที่ผมเขียนนี่ทำงานปรกตินะคับ แต่สิ่งที่มันขาดอย่างนึงคือตัวฟังก์ชั่นเองมันไม่สามารถรับค่า
จากในฟังก์ชั่น $.post() ออกมาเพื่อให้ checkDateInPromotionPeriod() ทำการ return ค่าเพื่อนำไปใช้งานอย่างอื่นต่อได้น่ะคับ
คือจะ return ค่า true/false ตามปรกติ
ผลลอง set ค่าใน callback ที่ส่งมาได้นะคับ แต่พอภายนอก $.post() กลับอ้างอิงถึงมันไม่ได้ ตรงนี้ผมรบกวน
สอบถามหน่อยนะคับว่า จะมี solution แก้ไขในกรณีนี้อย่างไรคับ



โดย:  Phoenixth IP: 58.8.117.xxx วันที่: 14-07-2010 เวลา: 22:32:40

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

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


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


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 2

ก่อนอื่นให้ลองเอาตัวแปร var x; ไว้นอกฟังก์ชันดูก่อน ถ้าไม่ได้ อ่านต่อข้างล่าง

ลองดูที่ความต้องการเป็นหลัก คือ ถ้าต้องการแค่ การ return ค่ากลับมาเป็น true หรือ false แล้วเอาค่าไปตรวจสอบ แนะนำการใช้งานเป็นแบบ
$.ajax();
http://www.ninenik.com/jquery-manual/api/jQuery.ajax.html

ซึ่งเป็นรูปแบบเต็ม และสมบูรณ์กว่าการใช้
$.post();
http://www.ninenik.com/jquery-manual/api/jQuery.post.html

ตัวอย่างการใช้ $.ajax ตรวจสอบข้อมูลอย่างง่าย
 

<script type="text/javascript">
function testFunc(){
	var returnVal=$.ajax({
		url:"test.php",
		data:"check=1",
		async:false
	}).responseText;
	return returnVal;
}
</script>

ไฟล์ test.php
 

<?php
if($_GET['check']!=""){
	if($_GET['check']==1){
		echo "1";
	}else{
		echo "0";
	}
	exit;
}
?>

แต่กรณีจำเป็นต้องใช้เป็นไฟล์ json ก็สามารถใช้ $.ajax() แทน $.post ได้เหมือนกัน
และยังครอบคลุม รวมทั้งสามารถประยุกต์ใช้เพิ่มเติมได้
 

<script type="text/javascript">
function checkDateInPromotionPeriod(){
	var callback;
	var x;
	callback=$.ajax({
		type: 'POST',
		url: URL,
		data:Data,
		dataType:'json',
		async:false
	}).responseText;

	callback=eval('(' + callback + ')');  
	if(callback.result == 'true'){
		alert("กรุณาตรวจสอบ rn  ช่วงเวลาโปรโมชั่นที่ระบุถูกกำหนดในรายการโปรโมชั่นอื่นแล้ว !");
		x=false; 
	}else if(callback.result == 'false'){
		x=true;    
	}
  return x;
}
</script>


โดย:  Ninenik IP: 124.121.245.xxx วันที่: 15-07-2010
 ความคิดเห็นที่ 1

ขอโทษนะคับ ลืมใส่ Title



โดย:  Phoenixth IP: 58.8.117.xxx วันที่: 14-07-2010 เวลา: 22:33:23