พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
ASP programming / การทำใบสั่งนะครับ
korakot_titla
korakot_titla
Sat 26 Nov 2005 10:35:06

อันนี้เป็น Project ที่จะจบนะครับไม่ผ่านก็คงไม่จบ*กรุณาช่วยผมหน่อยนะครับ*(งานเปรียบเทียบปรับของตำรวจจราจรนะครับ)

คืออย่างนี้นะครับ

ตอนนี้ผมกำลังจะออกใบสั่งให้ผู้ที่กระทำความผิดกฏจราจรนะครับและมีข้อมูลตามใบสั่งดังนึ้ครับ คราว ๆ นะครับ(บันทึกลงฐานข้อมูลนะครับ)

1ข้อมูลผู้กระทำความผิด

-เลขประจำตัว

-ชื่อ

-ที่อยู่

2.ข้อมูลรถกระทำความผิด

-ประเภทรถ

-ยี่ห้อ

-ป้ายทะเบียน

3สถานที่เกิดเหตุ

-ถนน

-อำเภอ

-จังหวัด

-วันเวลาเกิดเหตุ

4ข้อหาที่ทำความผิด

-ข้อหา

-ค่าปรับ

-ตัดแต้ม

ตอนนี้ผมแบ่งช่องในการกรอกข้อมูลต่างๆเหล่านี้อยู่หน้าเดียวนะครับ

ที่ผมอยากจะถามคือ เวลาที่ผมเลือกข้อหากระทำความผิด(4)ผมจะมี comboboxให้เลือกแล้วแสดงข้อมูลต่างๆออกมาทาง TextFile เมื่อเลือกจาก combobox เสร็จก็ให้แล้วคลิกที่     ปุ่มเลือก ก็ให้มันแสดงข้อหาต่างๆ ข้างล่างนะครับ หรือไม่ถ้าไม่เลือกก็ให้ป้อนข้อมูลลงใน TextFile ได้เลย แล้วแสดงข้อมูลที่ป้อนด้านล่าง (คล้ายกับที่เรา post นะครับ ใส่ข้อมูลแล้วก็แสดงออกในหน้าเดียวกันนะครับ)

ขอความช่วยเหลือแค่นี้ก่อนนะครับแล้วถ้าติดอารัยผมจะมา post ต่อ

Administrator
Sat 26 Nov 2005 14:40:39
ตามข้อมูลที่ให้มานี้ที่ต้องการว่าเมื่อเลือก combobox แล้วให้ทำการแสดงข้อมูลใน textbox นั้น ต้องใช้ Javascript ช่วยครับ

ลองนำไปประยุกต์ดูนะครับ

<script language="javascript">
function fillform(obj){
    var theform = obj.form;
    if(obj.value != "0"){
       theform.pent_name.value = "";
       theform.pent_fine.value = "";
       theform.pent_deduct = "";
      
       switch(obj.value){
          case "1":
          {
             theform.pent_name.value = "ฝ่าฝืนกฎจราจร";
             theform.pent_fine.value = "400";
             theform.pent_deduct = "10";
          }
          break;

          case "2":
          {
             theform.pent_name.value = "ขับขี่โดยประมาท";
             theform.pent_fine.value = "1000";
             theform.pent_deduct = "15";
          }
          break;
         
          case "3":
          {
             theform.pent_name.value = "ขับขี่โดยประมาท";
             theform.pent_fine.value = "1000";
             theform.pent_deduct = "20";
          }
          break;
       }
    }
}
</script>

<form action="...." method="post">
<select name="penalty" onchange="fillform(this)">
<option value="0">Please select</option>
<option value="1">ฝ่าไฟแดง</option>
<option value="2">ไม่คาดเข็มขัดนิรภัย</option>
<option value="3">ไม่สวมหมวกกันน็อค</option>
</select>

<input type="text" name="pent_name">

<input type="text" name="pent_fine">

<input type="text" name="pent_deduct">
</form>

จากโค๊ดข้างบนนะครับ
เมื่อมีการ เปลี่ยนแปลงค่าใน combobox แล้วจะมีการเรียกใช้งาน function fillform โดยการทำงานเริ่มจากว่า เช็คว่าค่าของ combobox ไม่เป็น 0 คือมีการเลือกไปที่ความผิดใดความผิดหนึ่ง แล้วหลังจากนั้นก็ทำการเซ็ทค่า textbox ทั้งหมดให้เป็นค่าว่าง แล้วเริ่มทำการเซ็ทค่า textbox ทั้งหมดเป็นค่าที่ต้องการครับ
korakot_titla
korakot_titla
Sat 26 Nov 2005 17:12:30

ต่อนะครับ

คือ combobox นี้ผมใช้ดึงข้อมูลมาจากฐานข้อมูลนะครับตาม code ข้างล่างนี้นะครับ

<% set rs1=Conn.execute("SELECT * FROM TblStory")%>
        <select name="select7" id="select3">
          <%
  Do while not rs1.EOF
  %>
          <option value="<%=trim(rs1("Story_ID"))%>" selected><%=trim(rs1("Story"))%></option>
          <%
  rs1.movenext
  loop
  rs1.close
  %>
        </select>

พอจะมีวิธีหรือป่าวครับคือจากเปลี่ยนเป็นการเลือก case "1" เป็นการเลือกข้อหาที่ทำความผิดจากฐานข้อมูลนะครับ

Administrator
Sat 26 Nov 2005 19:10:14
ถ้าคุณต้องการเปลี่ยนจาก 1,2,3 เป็นข้อหาหรือข้อความก็เปลี่ยนได้เลยครับ เช่น
<script language="javascript">
function .......
......
switch(obj.value){
    case "ฝ่าไฟแดง":
    {
       .........
    }
    break;
}
......
}
</script>

ส่วนใน select ก็ใส่ค่า เช่น
<select name .......>
<option value="0">Please select</option>
<option value="ฝ่าไฟแดง">ฝ่าไฟแดง</option>
.......
</select>

ลองประยุกต์ดูนะครับ
korakot_titla
korakot_titla
Sun 27 Nov 2005 20:08:22

ผมรู้ได้ยังงัยครับว่าเรากำลังเลือกอะไรอยู่เพราะว่าค่าใน combobox มันทำการวน loop โดยใช้ id

<option value="<%=trim(rs1("Story_ID"))%>" selected><%=trim(rs1("Story"))%></option>

Administrator
Mon 28 Nov 2005 01:36:56
จะเห็นว่าทั้งสองแบบไม่ต่างกันนะครับ
<option> นั้นค่าที่ถูกส่งไปจะถูกส่งไปในรูปแบบ string
จาก reply 1 นั้นผมก็ส่งค่าเป็นตัวเลข แต่ javascript จะเห็นเป็น string เช่นกัน
จาก reply 3 นั้นผมส่งค่าเป็น string แน่นอนว่า javascript ก็เห็นเป็น string เช่นกัน

จุดที่คุณถามว่าถ้าคุณอ้างค่าจาก id นั้นจะรู้ได้ยังไง อันนี้คุณต้องลองหาวิธี map ค่าทั้งสองดูครับ

การที่จะทำระบบ dynamic form ด้วย javascript แบบนี้นั้น มีวิธีคร่าวๆดังนี้ครับ
  1. ทำการ select ข้อมูลแล้วนำมาจัดเรียงในลักษณะ function ในส่วนของ javascript
  2. ทำการ select ข้อมูลแล้วนำมาใส่ใน combobox
ระบบคร่าวๆก็มีประมาณนี้ครับ ลองนำไปประยุกต์ดูนะครับ
korakot_titla
korakot_titla
Tue 29 Nov 2005 22:36:06

ครับผม...........ผมลองเอา Souce code จาก reply 1 มาแล้วลอง run ดู มัน Error ครับ คือเวลาที่เราเลือกข้อมูลใน combobox แล้ว ข้อมูลไม่ขึ้นใน TextField นะครับ ช่วยลองดูให้ผมหน่อยนะครับ ไม่รู้จริงๆ ครับ งง

Administrator
Tue 29 Nov 2005 23:16:44
ขอโทษทีครับ ลองโค๊ดนี้ดูครับ

<script language="javascript">
function fillform(obj){
    var theform = obj.form;
    if(obj.value != "0"){
       theform.pent_name.value = "";
       theform.pent_fine.value = "";
       theform.pent_deduct = "";
     
       switch(obj.value){
          case "1":
          {
             theform.pent_name.value = "ฝ่าฝืนกฎจราจร";
             theform.pent_fine.value = "400";
             theform.pent_deduct.value = "10";
          }
          break;

          case "2":
          {
             theform.pent_name.value = "ขับขี่โดยประมาท";
             theform.pent_fine.value = "1000";
             theform.pent_deduct.value = "15";
          }
          break;
        
          case "3":
          {
             theform.pent_name.value = "ขับขี่โดยประมาท";
             theform.pent_fine.value = "1000";
             theform.pent_deduct.value = "20";
          }
          break;
       }
    }
}
</script>

<form action="test.php" method="post">
<select name="penalty" onchange="fillform(this)">
<option value="0">Please select</option>
<option value="1">ฝ่าไฟแดง</option>
<option value="2">ไม่คาดเข็มขัดนิรภัย</option>
<option value="3">ไม่สวมหมวกกันน็อค</option>
</select>

<input type="text" name="pent_name">

<input type="text" name="pent_fine">

<input type="text" name="pent_deduct">
</form>

การทำงานก็เหมือนที่ reply #5 นั่นล่ะครับลองดูนะครับ ไม่ต่างจาก VB เท่าไหร่หรอกครับ

ส่วน
<option value="<%=trim(rs1("Story_ID"))%>" selected><%=trim(rs1("Story"))%></option>
attribute selected นั้นเป็นการบ่งบอกว่าให้ option นั้นๆถูกเลือกเป็นค่า default ซึ่ง combobox นั้นเป็นไปไม่ได้ที่จะมีตัวที่ถูกเลือกมากกว่า 1 ครับ
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