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

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามหน่อยนะคับว่า จะมี 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 14-07-2010 22:32:40

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

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


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


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

 ความคิดเห็นที่ 1

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



phoenixth 14-07-2010 22:33
 ความคิดเห็นที่ 2

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

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

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

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

1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
function testFunc(){
    var returnVal=$.ajax({
        url:"test.php",
        data:"check=1",
        async:false
    }).responseText;
    return returnVal;
}
</script>

ไฟล์ test.php
 

1
2
3
4
5
6
7
8
9
10
<?php
if($_GET['check']!=""){
    if($_GET['check']==1){
        echo "1";
    }else{
        echo "0";
    }
    exit;
}
?>

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<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 15-07-2010






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