PHP: AJAX İl, İlçe, Semt, Mahalle Seçimi Güncelleme Uygulaması

Veritabanından gelen , önceden atanmış, il ilçe semt ve mahalleleri seçebilmesi için gerekli update kodları
PHP: AJAX İl ? İlçe ? Semt ? Mahalle Seçimi Güncelleme Uygulaması

Chain Select uygulamaları ile ilgili daha önce yazdığım iki farklı makale kısa zamanda Serpito.com‘un en çok yorum ve ziyaret alan uygulamalar oldu.

Gelen yorumlarda özellikle bir çok arkadaşın istediği,  veritabanından gelen , önceden atanmış, il ilçe semt ve mahalleleri seçebilmesi için gerekli update kodlarını paylaşıyorum.  

index.php de , select elemenleri eklerken, ufak bir değişiklik yapmamız gerekiyor. #il  selectinin Şehir ID ‘ini selected=”selected”  olarak tanımlıyoruz.

index.php

<select id="il" name="il">
<option value="0">Şehir Seçiniz</option>
<?php
$sql=$db->q("SELECT id,il_adi FROM il ORDER BY id ASC");
while($row=$db->fassoc($sql)){
?>
<option value="<?=$row['id']?>" <?php if($row['id'] == 7){ ?> selected="selected" <?php } ?>><?=$row['il_adi']?></option>
<?php
}
?>
</select>

<select name="ilce" id="ilce">
<option value="0">İlçe Seçiniz</option>
</select>
<select name="semt" id="semt">
<option value="0">Semt Seçiniz</option>
</select>
<select name="mahalle" id="mahalle">
<option value="0">Mahalle Seçiniz</option>
</select>

<script src="selectchained.js" type="text/javascript"></script>
<script>
$("#ilce").remoteChained("#il", "smtr.php?ilce=83");
$("#semt").remoteChained("#ilce", "smtr.php?semt=440");
$("#mahalle").remoteChained("#semt", "smtr.php?mahalle=4833");
</script>

  Ajax ile data getiren smtr_edit.php’nin güncel halini aşağıda bulabilirsiniz.

 smtr_edit.php

<?php
require_once("mysql.php");

if(isset($_GET['il'])){

$il=(int)$_GET['il'];
$secili=(int)$_GET['ilce'];
if($il>0){
$dk=$db->q("SELECT `id`,`ilce_adi` FROM `ilce` WHERE `il_id`='$il' ORDER BY `id` ASC");

if($secili>0){
$list='{"selected":"'.$secili.'",';
}else{
$list='{"0":"Seçiniz",';
}
while($ilr=$db->fassoc($dk)){
$list.='"'.$ilr['id'].'":"'.$ilr['ilce_adi'].'",';
}
$list=substr($list,0,-1);
$list.="}";
echo $list;
}
}
else if(isset($_GET['ilce'])){
$ilce=(int)$_GET['ilce'];
$secili=(int)$_GET['semt'];
if($ilce>0){
$dk=$db->q("SELECT `id`,`semt_adi` FROM `semt` WHERE `ilce_id`='$ilce' ORDER BY `id` ASC");
if($secili>0){
$list='{"selected":"'.$secili.'",';
}else{
$list='{"0":"Seçiniz",';
}
while($ilr=$db->fassoc($dk)){
$list.='"'.$ilr['id'].'":"'.$ilr['semt_adi'].'",';
}
$list=substr($list,0,-1);
$list.="}";
echo $list;
}
}
else if(isset($_GET['semt'])){
$semt=(int)$_GET['semt'];
$secili=(int)$_GET['mahalle'];

if($semt>0){
$dk=$db->q("SELECT `id`,`mahalle_adi` FROM `mahalle` WHERE `semt_id`='$semt' ORDER BY `ordernum` DESC, id ASC");

if($secili>0){
$list='{"selected":"'.$secili.'",';
}else{
$list='{"0":"Seçiniz",';
}

while($ilr=$db->fassoc($dk)){
$list.='"'.$ilr['id'].'":"'.$ilr['mahalle_adi'].'",';
}
$list=substr($list,0,-1);
$list.="}";
echo $list;
}
}

$db->close();
?>

 

Kaynak

 

Yorumunuzu Ekleyin
PHP: AJAX İl, İlçe, Semt, Mahalle Seçimi Güncelleme Uygulaması Yorumları +2 Yorum
  • ömer
    1
    ömer
    value değeri farklı id aldığında veri tabanına id değerini yazıyo bunu nasıl düzeltebiliriz
    06 Ocak 2014 22:24:55, Pazartesi
  • erol
    1
    erol
    bunun veritabanı indirme linki nerede
    25 Aralık 2020 00:21:36, Cuma


Yükleniyor...
Yükleniyor...