จากเรื่องที่แล้ว ฐานข้อมูลระดับจังหวัด อำเภอ ตำบล และ ใส่ฟิลเตอร์ให้ select box มาต่อด้วยการสร้างฟอร์ม ไปใช้ส่งข้อมูล
เป็นธรรมดาที่การกรอกข้อมูลส่วนตัว ประวัติต่างๆ อาจจะต้องการหลายที่อยู่ เช่น ที่อยู่ตามทะเบียนบ้าน ที่อยู่ปัจจุบัน ที่ทำงาน ถ้าต้องมากำหนดตัวกรองให้ select box ที่ละตัวก็เสียเวลา แก้ได้โดยเปลี่ยนไปใช้ class แทน id และใช้ attribute data- แทนแต่ละกลุ่ม และใช้ ajax ดึงข้อมูลมาทำ chained เวลาที่เปลี่ยนตัเลือกในตัวแม่ ให้ใช้เอแจ็กซ์ดึงข้อมูลที่เกี่ยวข้องมาแสดง update แทนตัวเลือก option ตัวลูกที่มีอยู่เดิม
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | <!doctype html> <html> <head> <meta charset= "utf-8" > <title>AJAX jQuery.chosen By Pitt Phunsanit</title> <link href= "chosen/chosen.min.css" rel= "stylesheet" type= "text/css" > </head> <body> <fieldset> <legend>บ้าน</legend> <select name= "home_province" class = "areasProvince chosen-select" data-area= "home" style= "width:200px;" > <option value= "64" >กระบี่</option> <option value= "1" >กรุงเทพมหานคร</option> <option value= "56" >กาญจนบุรี</option> <option value= "34" >กาฬสินธุ์</option> <option value= "49" >กำแพงเพชร</option> <option value= "28" >ขอนแก่น</option> <option value= "13" >จันทบุรี</option> <option value= "15" >ฉะเชิงเทรา</option> <option value= "11" >ชลบุรี</option> <option value= "9" >ชัยนาท</option> <option value= "25" >ชัยภูมิ</option> <option value= "69" >ชุมพร</option> <option value= "45" >เชียงราย</option> <option value= "38" >เชียงใหม่</option> <option value= "72" >ตรัง</option> <option value= "14" >ตราด</option> <option value= "50" >ตาก</option> <option value= "17" >นครนายก</option> <option value= "58" >นครปฐม</option> <option value= "36" >นครพนม</option> <option value= "19" >นครราชสีมา</option> <option value= "63" >นครศรีธรรมราช</option> <option value= "47" >นครสวรรค์</option> <option value= "3" >นนทบุรี</option> <option value= "76" >นราธิวาส</option> <option value= "43" >น่าน</option> <option value= "77" >บึงกาฬ</option> <option value= "20" >บุรีรัมย์</option> <option value= "4" >ปทุมธานี</option> <option value= "62" >ประจวบคีรีขันธ์</option> <option value= "16" >ปราจีนบุรี</option> <option value= "74" >ปัตตานี</option> <option value= "5" >พระนครศรีอยุธยา</option> <option value= "44" >พะเยา</option> <option value= "65" >พังงา</option> <option value= "73" >พัทลุง</option> <option value= "53" >พิจิตร</option> <option value= "52" >พิษณุโลก</option> <option value= "61" >เพชรบุรี</option> <option value= "54" >เพชรบูรณ์</option> <option value= "42" >แพร่</option> <option value= "66" >ภูเก็ต</option> <option value= "32" >มหาสารคาม</option> <option value= "37" >มุกดาหาร</option> <option value= "46" >แม่ฮ่องสอน</option> <option value= "24" >ยโสธร</option> <option value= "75" >ยะลา</option> <option value= "33" >ร้อยเอ็ด</option> <option value= "68" >ระนอง</option> <option value= "12" >ระยอง</option> <option value= "55" >ราชบุรี</option> <option value= "7" >ลพบุรี</option> <option value= "40" >ลำปาง</option> <option value= "39" >ลำพูน</option> <option value= "30" >เลย</option> <option value= "22" >ศรีสะเกษ</option> <option value= "35" >สกลนคร</option> <option value= "70" >สงขลา</option> <option value= "71" >สตูล</option> <option value= "2" >สมุทรปราการ</option> <option value= "60" >สมุทรสงคราม</option> <option value= "59" >สมุทรสาคร</option> <option value= "18" >สระแก้ว</option> <option value= "10" >สระบุรี</option> <option value= "8" >สิงห์บุรี</option> <option value= "51" >สุโขทัย</option> <option value= "57" >สุพรรณบุรี</option> <option value= "67" >สุราษฎร์ธานี</option> <option value= "21" >สุรินทร์</option> <option value= "31" >หนองคาย</option> <option value= "27" >หนองบัวลำภู</option> <option value= "6" >อ่างทอง</option> <option value= "26" >อำนาจเจริญ</option> <option value= "29" >อุดรธานี</option> <option value= "41" >อุตรดิตถ์</option> <option value= "48" >อุทัยธานี</option> <option value= "23" >อุบลราชธานี</option> </select> <select name= "home_city" class = "areasCity chosen-select" data-area= "home" style= "width:200px;" > </select> </fieldset> <fieldset> <legend>ที่ทำงาน</legend> <select name= "office_province" class = "areasProvince chosen-select" data-area= "office" style= "width:200px;" > <option value= "64" >กระบี่</option> <option value= "1" >กรุงเทพมหานคร</option> <option value= "56" >กาญจนบุรี</option> <option value= "34" >กาฬสินธุ์</option> <option value= "49" >กำแพงเพชร</option> <option value= "28" >ขอนแก่น</option> <option value= "13" >จันทบุรี</option> <option value= "15" >ฉะเชิงเทรา</option> <option value= "11" >ชลบุรี</option> <option value= "9" >ชัยนาท</option> <option value= "25" >ชัยภูมิ</option> <option value= "69" >ชุมพร</option> <option value= "45" >เชียงราย</option> <option value= "38" >เชียงใหม่</option> <option value= "72" >ตรัง</option> <option value= "14" >ตราด</option> <option value= "50" >ตาก</option> <option value= "17" >นครนายก</option> <option value= "58" >นครปฐม</option> <option value= "36" >นครพนม</option> <option value= "19" >นครราชสีมา</option> <option value= "63" >นครศรีธรรมราช</option> <option value= "47" >นครสวรรค์</option> <option value= "3" >นนทบุรี</option> <option value= "76" >นราธิวาส</option> <option value= "43" >น่าน</option> <option value= "77" >บึงกาฬ</option> <option value= "20" >บุรีรัมย์</option> <option value= "4" >ปทุมธานี</option> <option value= "62" >ประจวบคีรีขันธ์</option> <option value= "16" >ปราจีนบุรี</option> <option value= "74" >ปัตตานี</option> <option value= "5" >พระนครศรีอยุธยา</option> <option value= "44" >พะเยา</option> <option value= "65" >พังงา</option> <option value= "73" >พัทลุง</option> <option value= "53" >พิจิตร</option> <option value= "52" >พิษณุโลก</option> <option value= "61" >เพชรบุรี</option> <option value= "54" >เพชรบูรณ์</option> <option value= "42" >แพร่</option> <option value= "66" >ภูเก็ต</option> <option value= "32" >มหาสารคาม</option> <option value= "37" >มุกดาหาร</option> <option value= "46" >แม่ฮ่องสอน</option> <option value= "24" >ยโสธร</option> <option value= "75" >ยะลา</option> <option value= "33" >ร้อยเอ็ด</option> <option value= "68" >ระนอง</option> <option value= "12" >ระยอง</option> <option value= "55" >ราชบุรี</option> <option value= "7" >ลพบุรี</option> <option value= "40" >ลำปาง</option> <option value= "39" >ลำพูน</option> <option value= "30" >เลย</option> <option value= "22" >ศรีสะเกษ</option> <option value= "35" >สกลนคร</option> <option value= "70" >สงขลา</option> <option value= "71" >สตูล</option> <option value= "2" >สมุทรปราการ</option> <option value= "60" >สมุทรสงคราม</option> <option value= "59" >สมุทรสาคร</option> <option value= "18" >สระแก้ว</option> <option value= "10" >สระบุรี</option> <option value= "8" >สิงห์บุรี</option> <option value= "51" >สุโขทัย</option> <option value= "57" >สุพรรณบุรี</option> <option value= "67" >สุราษฎร์ธานี</option> <option value= "21" >สุรินทร์</option> <option value= "31" >หนองคาย</option> <option value= "27" >หนองบัวลำภู</option> <option value= "6" >อ่างทอง</option> <option value= "26" >อำนาจเจริญ</option> <option value= "29" >อุดรธานี</option> <option value= "41" >อุตรดิตถ์</option> <option value= "48" >อุทัยธานี</option> <option value= "23" >อุบลราชธานี</option> </select> <select name= "office_city" class = "areasCity chosen-select" data-area= "office" style= "width:200px;" > </select> </fieldset> <script src= "../jQuery/jquery-2.1.3.min.js" ></script> <script src= "chosen/chosen.jquery.min.js" ></script> <script> $( function (){ /* select box filter */ $( '.chosen-select' ).chosen(); $( '.areasProvince' ).chosen().change( function (){ child = $( '.areasCity[data-area="' +$(this).data( 'area' )+ '"]' ); html = Array( '<option value="">--Select--</option>' ); parent_id = $(this).val(); if (parent_id == '' ){ child.html(html) } else { $.ajax({ "cache" : true, "dataType" : "json" , "success" : function (datas){ $.each(datas, function (key, item){ html.push( '<option value="' +item.value+ '">' +item.text+ '</option>' ); }); child.html(html); child.trigger( 'chosen:updated' ); }, "url" : "thailandJSON.php?subdivisions=amphur&parent_id=" +parent_id }); } }); }) </script> </body> </html> |