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ı
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>
<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();
?>
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