Advertisement
cdsatrian

`wilayah` on mysqli

Jun 27th, 2017
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.85 KB | None | 0 0
  1. <?php
  2. $dbhost='localhost';
  3. $dbuser='root';
  4. $dbpass='';
  5. $dbname='wilayah';
  6. $db = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
  7. if (!empty($_GET['id'])){
  8.     $n=strlen($_GET['id']);
  9.     $m=($n==2?5:($n==5?8:13));
  10.     $wil=($n==2?'Kota/Kab':($n==5?'Kecamatan':'Desa/Kelurahan'));
  11.     $query = $db->prepare("SELECT nama,kode FROM wilayah WHERE LEFT(kode,?)=? AND CHAR_LENGTH(kode)=? ORDER BY nama");
  12.     $query->bind_param("ssi",$n,$_GET['id'],$m);
  13.     $query->bind_result($nama, $kode);
  14.     $query->execute();
  15.     echo"<option value=''>Pilih {$wil}</option>";
  16.     while($query->fetch()){
  17.         echo "<option value='{$kode}'>{$nama}</option>";
  18.     }
  19. }else{
  20. ?>
  21. <!doctype html>
  22. <html>
  23.     <head>
  24.         <title>Data Daerah</title>
  25.         <style>
  26.             select {width:240px;}
  27.             #kab_box,#kec_box,#kel_box{display:none;}
  28.          </style>
  29.         <script>
  30.         var my_ajax=do_ajax();
  31.         var ids;
  32.         var wil=new Array('prov','kota','kec','kel');
  33.         function ajax(id){
  34.             ids=id;
  35.             var url="?id="+id+"&sid="+Math.random();
  36.             my_ajax.onreadystatechange=stateChanged;
  37.             my_ajax.open("GET",url,true);
  38.             my_ajax.send(null);
  39.         }
  40.         function do_ajax(){
  41.             if (window.XMLHttpRequest){
  42.                 return new XMLHttpRequest();
  43.             }
  44.             if (window.ActiveXObject){
  45.                 return new ActiveXObject("Microsoft.XMLHTTP");
  46.             }
  47.             return null;
  48.         }
  49.         function stateChanged(){
  50.             var n=ids.length;
  51.             var w=(n==2?wil[1]:(n==5?wil[2]:wil[3]));
  52.             var data;
  53.             if (my_ajax.readyState==4){
  54.                 data=my_ajax.responseText;
  55.                 document.getElementById(w).innerHTML = data.length>=0 ? data:"<option selected>Pilih Kota/Kab</option>";
  56.                 document.getElementById("kab_box").style.display=(n>1)?'table-row':'none';
  57.                 document.getElementById("kec_box").style.display=(n>4)?'table-row':'none';
  58.                 document.getElementById("kel_box").style.display=(n>7)?'table-row':'none';
  59.             }
  60.         }
  61.         </script>
  62.     </head>
  63.     <body>
  64.         <table>
  65.             <tr>
  66.             <td>Pilih Provinsi</td>
  67.             <td>
  68.                 <select name="prop" id="prop" onchange="ajax(this.value)">
  69.                     <option value="">Pilih Provinsi</option>
  70.                     <?php
  71.                     $result=$db->query("SELECT kode,nama FROM wilayah WHERE CHAR_LENGTH(kode)=2 ORDER BY nama");
  72.                     while ($data=$result->fetch_object()){
  73.                         echo '<option value="'.$data->kode.'">'.$data->nama.'</option>';
  74.                     }
  75.                     ?>
  76.                 <select>
  77.             </td>
  78.         </tr>
  79.         <tr id='kab_box'>
  80.             <td>Pilih Kota/Kab</td>
  81.             <td>
  82.                 <select name="kota" id="kota" onchange="ajax(this.value)">
  83.                     <option value="">Pilih Kota</option>
  84.                 </select>
  85.             </td>
  86.         </tr>
  87.         <tr id='kec_box'>
  88.             <td>Pilih Kec</td>
  89.             <td>
  90.                 <select name="kec" id="kec" onchange="ajax(this.value)">
  91.                     <option value="">Pilih Kecamatan</option>
  92.                 </select>
  93.             </td>
  94.         </tr>
  95.         <tr id='kel_box'>
  96.             <td>Pilih Kelurahan/Desa</td>
  97.             <td>
  98.                 <select name="kel" id="kel">
  99.                     <option value="">Pilih Kelurahan/Desa</option>
  100.                 </select>
  101.             </td>
  102.         </tr>
  103.     </body>
  104. </html>
  105. <?php } ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement