พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
ASP programming / ต่อภาค 2 ครับ Checkbox
korakot_titla
Sun 20 Nov 2005 15:45:52
ต่ออีกหน่อยนะครับ
คือว่า ในส่วนผมเพิ่ม socde code นี้นะครับ

.Write "<form method=post action='Delete_1_UserTraffic.asp' onsubmit='return validate(this)'>"

แล้วหลังจากนั้นผมก็แทรก js ดังนี้ต่อท้ายนะครับ

<script language="javascript">
function validate(obj){
var check = true;
for(i=0; i<obj.id.length; i++){
if(!obj.id[i].checked){
check = false;
}
}
if(check){
confirm("ยืนยันการลบข้อมูล");
return true;
}else{
alert("Please check some box");
return false;
}
}
</script>

**********************checkbox ชือว่า id นะครับ*****************

.Write"<td align=center><input type=checkbox name=id value=" & rs("ID") & ">


***********************************************************************
ซึ่งเมื่อเราไม่ได้ทำการเลือกที่ checkbox มันก็จะแสดง messagebox บอกว่า ("Please check some box") แต่เวลาผมเลือกมันกลับแสดง messagebox เหมือนเดิมนะครับ
ผมสงสัยว่ามันจะไม่ วน loop นะครับ หรือเป็นเพราะอะไรเหรอครับ ช่วยอธิบายให้ผมเข้าใจด้วยนะครับ
Administrator
Sun 20 Nov 2005 16:29:47
การใช้งานโค๊ดตามที่ให้ไปเลยครับ

<script language="javascript">
function validate(obj){
    var check = true;
    for(i=0; i<obj.elements.length; i++){
       if(!obj.elements[i].checked){
          check = false;
       }
    }
   
    if(check){
       //OK
       return true;
    }else{
       //Not check any box
       alert("Please check some box");
       return false;
    }
}
</script>

ส่วน form ก็ ถูกแล้วครับ
Write "<form method=post action='Delete_1_UserTraffic.asp' onsubmit='return validate(this)'>"

ที่ผมใช้ elements.length นั่น elements เป็น properties ของ form ครับโดยถูกประกาศเป็น array ซึ่งเก็บค่าของ object ต่างๆที่อยู่ใน form ครับจึงสามารถใช้โค๊ดของผมได้เลยไม่ต้องเปลี่ยนจาก elements เป็น id ครับ

ส่วนที่คุณเขียนเพื่อให้ confirm นั้น ควรใช้เป็น
...
    if(check){
       //OK
        return confirm("ยืนยันการลบข้อมูล");
    }else{
       //Not check any box
       alert("Please check some box");
       return false;
    }
...

ซึ่งจาดโค๊ดของคุณนั้นแน่นอนครับว่าจะมี dialog เพื่อให้ยืนยัน แต่ว่าไม่ว่าจะตอบว่าอะไรก็จะมีการลบข้อมูลครับ แต่จากโค๊ดข้างบนนนี้เมื่อมีการ loop เพื่อเช็กว่ามีการติ๊กหรือยังถ้ามีการติ๊กแล้วจะทำการแสดง dialog เพื่อให้ยืนยันถ้าตอบ Cancel ตัว form จะไม่ถูก submit ครับ
korakot_titla
korakot_titla
Sun 20 Nov 2005 22:30:53

มันก็ยังวน loop ครับ เวลาที่ผมเลือก check box นะครับ หรือว่าผมเอา JS แทรกผิดรึป่าวครับ

ผมเอา JS มาต่อข้างล่างสุดเลยนะครับ

korakot_titla
korakot_titla
Sun 20 Nov 2005 22:40:02

เหมือนเดิมครับ............ไม่วน loop

korakot_titla
korakot_titla
Sun 20 Nov 2005 23:00:20

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

แต่ว่าทำไมมันไม่เก็บค่าของ Checkbox ที่เราทำการเลือกหรือป่าวครับ มันถึงไม่ได้ มาเช็คตรงส่วนที่เราไม่ได้เลือกส่วนนี้นะครับ

*********else{
       //Not check any box
   alert("Please check some box");
       return false;
    }

***************

มันจะแสดงตรงส่วนนี้ตลอดเลยนะครับ

งงจริงๆครับ ช่วยผมอีกรอบนะครับ

Administrator
Mon 21 Nov 2005 12:06:14
ตามนี้เลยครับ

<script language="javascript">
function validate(obj){
    var check = false;
    for(i = 0; i<obj.elements.length; i++){
        alert(obj.elements[i].checked);
        if(obj.elements[i].checked){
            check = true;
        }
    }
    alert(check);
    if(check){
        return confirm("ยืนยันการลบข้อมูล");
    }else{
        alert("Please check some box");
        return false;
    }
}
</script>

ส่วนของ Javascript เขียนโค๊ดเช็คสลับกันไปหน่อยครับ ต้องขออภัยด้วย

ส่วน form ก็เหมือนเดิมครับ <form action="..." method="post" onsubmit="return validate(this)">

เพิ่มนิดนึงครับลืมสังเกตไปครับว่าตอนคุณประกาศ input="checkbox" นั้นต้องตั้งชื่อให้เป็น array ครับ เช่น
<input type="checkbox" name="id[]" value="...">

โค๊ดนี้สามารถใช้ได้เลยครับ
korakot_titla
korakot_titla
Mon 21 Nov 2005 19:01:23
ขอบคุณครับ.........
ac
ac
Wed 9 Jan 2008 10:10:00
In remembrance of Her Royal Highness Princess Kalyani Vadhana
พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
korakot_titla
Sun 20 Nov 2005 15:45:52
ต่ออีกหน่อยนะครับ
คือว่า ในส่วนผมเพิ่ม socde code นี้นะครับ

.Write "<form method=post action='Delete_1_UserTraffic.asp' onsubmit='return validate(this)'>"

แล้วหลังจากนั้นผมก็แทรก js ดังนี้ต่อท้ายนะครับ

<script language="javascript">
function validate(obj){
var check = true;
for(i=0; i<obj.id.length; i++){
if(!obj.id[i].checked){
check = false;
}
}
if(check){
confirm("ยืนยันการลบข้อมูล");
return true;
}else{
alert("Please check some box");
return false;
}
}
</script>

**********************checkbox ชือว่า id นะครับ*****************

.Write"<td align=center><input type=checkbox name=id value=" & rs("ID") & ">


***********************************************************************
ซึ่งเมื่อเราไม่ได้ทำการเลือกที่ checkbox มันก็จะแสดง messagebox บอกว่า ("Please check some box") แต่เวลาผมเลือกมันกลับแสดง messagebox เหมือนเดิมนะครับ
ผมสงสัยว่ามันจะไม่ วน loop นะครับ หรือเป็นเพราะอะไรเหรอครับ ช่วยอธิบายให้ผมเข้าใจด้วยนะครับ
Administrator
Sun 20 Nov 2005 16:29:47
การใช้งานโค๊ดตามที่ให้ไปเลยครับ

<script language="javascript">
function validate(obj){
    var check = true;
    for(i=0; i<obj.elements.length; i++){
       if(!obj.elements[i].checked){
          check = false;
       }
    }
   
    if(check){
       //OK
       return true;
    }else{
       //Not check any box
       alert("Please check some box");
       return false;
    }
}
</script>

ส่วน form ก็ ถูกแล้วครับ
Write "<form method=post action='Delete_1_UserTraffic.asp' onsubmit='return validate(this)'>"

ที่ผมใช้ elements.length นั่น elements เป็น properties ของ form ครับโดยถูกประกาศเป็น array ซึ่งเก็บค่าของ object ต่างๆที่อยู่ใน form ครับจึงสามารถใช้โค๊ดของผมได้เลยไม่ต้องเปลี่ยนจาก elements เป็น id ครับ

ส่วนที่คุณเขียนเพื่อให้ confirm นั้น ควรใช้เป็น
...
    if(check){
       //OK
        return confirm("ยืนยันการลบข้อมูล");
    }else{
       //Not check any box
       alert("Please check some box");
       return false;
    }
...

ซึ่งจาดโค๊ดของคุณนั้นแน่นอนครับว่าจะมี dialog เพื่อให้ยืนยัน แต่ว่าไม่ว่าจะตอบว่าอะไรก็จะมีการลบข้อมูลครับ แต่จากโค๊ดข้างบนนนี้เมื่อมีการ loop เพื่อเช็กว่ามีการติ๊กหรือยังถ้ามีการติ๊กแล้วจะทำการแสดง dialog เพื่อให้ยืนยันถ้าตอบ Cancel ตัว form จะไม่ถูก submit ครับ
korakot_titla
korakot_titla
Sun 20 Nov 2005 22:30:53

มันก็ยังวน loop ครับ เวลาที่ผมเลือก check box นะครับ หรือว่าผมเอา JS แทรกผิดรึป่าวครับ

ผมเอา JS มาต่อข้างล่างสุดเลยนะครับ

korakot_titla
korakot_titla
Sun 20 Nov 2005 22:40:02

เหมือนเดิมครับ............ไม่วน loop

korakot_titla
korakot_titla
Sun 20 Nov 2005 23:00:20

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

แต่ว่าทำไมมันไม่เก็บค่าของ Checkbox ที่เราทำการเลือกหรือป่าวครับ มันถึงไม่ได้ มาเช็คตรงส่วนที่เราไม่ได้เลือกส่วนนี้นะครับ

*********else{
       //Not check any box
   alert("Please check some box");
       return false;
    }

***************

มันจะแสดงตรงส่วนนี้ตลอดเลยนะครับ

งงจริงๆครับ ช่วยผมอีกรอบนะครับ

Administrator
Mon 21 Nov 2005 12:06:14
ตามนี้เลยครับ

<script language="javascript">
function validate(obj){
    var check = false;
    for(i = 0; i<obj.elements.length; i++){
        alert(obj.elements[i].checked);
        if(obj.elements[i].checked){
            check = true;
        }
    }
    alert(check);
    if(check){
        return confirm("ยืนยันการลบข้อมูล");
    }else{
        alert("Please check some box");
        return false;
    }
}
</script>

ส่วนของ Javascript เขียนโค๊ดเช็คสลับกันไปหน่อยครับ ต้องขออภัยด้วย

ส่วน form ก็เหมือนเดิมครับ <form action="..." method="post" onsubmit="return validate(this)">

เพิ่มนิดนึงครับลืมสังเกตไปครับว่าตอนคุณประกาศ input="checkbox" นั้นต้องตั้งชื่อให้เป็น array ครับ เช่น
<input type="checkbox" name="id[]" value="...">

โค๊ดนี้สามารถใช้ได้เลยครับ
korakot_titla
korakot_titla
Mon 21 Nov 2005 19:01:23
ขอบคุณครับ.........
Reply
Name:
E-mail:
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye SitemapClient login
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login