Şimdi ben bir emlak sitesi yapmaya çalışıyorum. Şöyle bir kod buldum. Ama bu kod benim bulunduğum adresin konumunu veriyor. Ben, emlak verisi ekleyeceğim için, select option'dan seçtiğim verileri, mesela İstanbul, Üsküdar gibi, bunları haritada göstermem lazım. İl-ilçe verisini haritaya nasıl ekleyebilirim?
function getLocation() {
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
}
function showPosition(position) {
document.querySelector('.myForm input[name="latitude"]').value = position.coords.latitude;
document.querySelector('.myForm input[name="longitude"]').value = position.coords.longitude;
}
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
alert("Konum Bilgisi Gösterilemiyor");
location.reload();
break;
}
}
Tebrik ederim çok güzel olmuş.
overflow-y: hidden;
overflow-x: hidden;
scroll'ları bu şekilde gizleyebilirsiniz.
Aşağıdaki kodlara göre değerlendirecek olursak şöyle bir sorun fark ettim.
iki adet php sayfası var. ilk sayfa arama.php, ikinci sayfa ise aramasonuc.php sayfası. Aşağıdaki kodlar aramasonuc.php sayfasının kodları. arama.php sayfasından aratılacak değeri gönderiyorum. aramasonuc.php sayfasında sayfalama yapıyorum. her sayfada 2 adet veri gösteriliyor. Sorun şu: Gönderdiğim değer üç adet veriyi tutuyorsa ve aramasonuc.php sayfasında da her sayfada veri gösterilme limitini iki olarak belirlemişsem, iki adet veri olarak alıyor değeri. Gönderdiğim veri 3 adet veriyse ve aramasonuc.php sayfasında limiti 3 olarak belirlediysem aramasonuc.php sayfası, alınan değerin tuttuğu veri sayısını 3 olarak kabul ediyor. Yani aramasonuc.php sayfasındaki limit 2 dersek ve gelen veri 3 adetse, 3. veriyi sayfalamaya tabi tutmuyor.
Kısacası limit 2 ise veri 3 adetse gelen veriyi 2 olarak alıyor. Hâlbuki limit 2 ise gelen veri 3 ise 1. sayfada 2 verinin, 2. sayfada 3. verinin olması lazım. 3. veri sayfalamaya tabi olmuyor.
<?php
$Sayfa = @intval($_GET['sayfa']); if(!$Sayfa) $Sayfa = 1;
$Say = "SELECT * FROM yorumlar ORDER BY yorumlar_id DESC";
$verisay = mysqli_query($db, $Say);
$ToplamVeri = mysqli_num_rows($verisay);
$Limit = 2;
$Sayfa_Sayisi = ceil($ToplamVeri/$Limit); if($Sayfa > $Sayfa_Sayisi){$Sayfa = 1;}
$Goster = $Sayfa * $Limit - $Limit;
$GorunenSayfa = 4;
if(isset($_POST['gonder'])) {
$aramacek = @$_POST['arama'];
$yenieklenenleryorumaramalistele_sorgusu = "SELECT yorumlar_id, yorumlar_ilannumarasi,
yorumlar_adsoyad, yorumlar_eposta, yorumlar_yorumalani, yorumlar_onay
FROM yorumlar WHERE yorumlar_ilannumarasi LIKE '%$aramacek%' order by yorumlar_id DESC limit $Goster, $Limit";
$yenieklenenleryorumaramalistele_sorgu = mysqli_query($db, $yenieklenenleryorumaramalistele_sorgusu);
$aramasonucu = mysqli_num_rows($yenieklenenleryorumaramalistele_sorgu);
if($aramasonucu > 0) {
?>
<div class="x">
<?php require("mobilemenu.php"); ?>
<div class="sayfalama_ve_liste_margin">
<div class="marginayarla">
<div class="yorumlarlistele_aramayap_div">
<form action="" method="POST">
<input type="text" name="arama" placeholder="İlan Numarası Ara" pattern="\d*" required>
<input type="submit" name="gonder" value="Arama Yap">
</form>
<div class="yorumlarlistele_aramasil_div">
<form action="arama.php" method="POST">
<input type="submit" name="aramayisil" value="Aramayı Sil">
</form>
</div>
</div>
<div class="yorumlarlistele_yazisi_div">Yorum Listele</div>
<?php
foreach($yenieklenenleryorumaramalistele_sorgu as $yorumlarlistele_goster) {
?>
<div class="yorumlarlistele_ilannumarasi">İlan Nu:</div>
<div class="yorumlarlistele_adsoyad">Ad-Soyad</div>
<div class="yorumlarlistele_eposta">E-Posta</div>
<div class="yorumlarlistele_onay">Onay</div>
<div class="yorumlarlistele_ilannumarasi_veri">
<?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_ilannumarasi'],0,20)); ?>
</div>
<div class="yorumlarlistele_adsoyad_veri">
<?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_adsoyad'],0,40)); ?>
</div>
<div class="yorumlarlistele_eposta_veri">
<?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_eposta'],0,40)); ?>
</div>
<div class="yorumlarlistele_onay_veri">
<?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_onay'],0,1)); ?>
</div>
<div class="yorumlarlistele_yorum">Yorum</div>
<div class="yorumlarlistele_duzenle_sil">Düzenle-Sil</div>
<div class="yorumlarlistele_yorum_veri">
<?php echo nl2br($yorumlarlistele_goster['yorumlar_yorumalani']); ?>
</div>
<div class="yorumlarlistele_duzenle_sil_alani_veri">
<a href="yenieklenenlerduzenle.php?yenieklenenlerduzenle=<?php
echo base64_encode($yorumlarlistele_goster['yorumlar_id']);
?>"
>
<img src="icons/edit.png" title="Düzenle" />
</a>
<a href="yenieklenenlersil.php?yenieklenenleridsil=<?php
echo base64_encode($yorumlarlistele_goster['yorumlar_id']);
?>">
<img src="icons/delete.png" style="padding-left:25px;" title="Sil"/>
</a>
</div>
<?php } ?>
</div>
<div class="sayfalama-div">
<?php if($Sayfa > 1) { ?>
<span class="say_sabit"><a style="font-size:17px; color:#fff; margin-right:8px;" href="arama.php?sayfa=1">İlk</a></span>
<span class="say_sabit"><a style="font-size:17px; color:#fff;" href="arama.php?sayfa=<?=$Sayfa - 1?>">Önceki</a></span>
<?php } ?>
<?php
for ($i = $Sayfa - $GorunenSayfa; $i < $Sayfa + $GorunenSayfa +1; $i++) {
if($i > 0 and $i <= $Sayfa_Sayisi) {
if($i == $Sayfa) {
echo '<span style="font-size:17px; margin-right:8px; padding:0px 8px; background:red; color:#fff;" class="say_aktif">'.$i.'</span>';
} else {
echo '<a style="font-size:17px; padding:0px 8px; color:#fff; margin-right:8px;" class="say_a" href="arama.php?sayfa='.$i.'">'.$i.'</a>';
}
}
}
?>
<?php if ($Sayfa != $Sayfa_Sayisi) { ?>
<span class="say_sabit"><a style="font-size:17px; color:#fff; margin-right:8px;" href="arama.php?sayfa=<?=$Sayfa + 1?>">Sonraki</a></span>
<span class="say_sabit"><a style="font-size:17px; color:#fff;" href="arama.php?sayfa=<?=$Sayfa_Sayisi?>">Son</a></span>
<?php } ?>
</div>
</div>
</div>
<?php
}
}
?>
Şimdi sorunun çözümüne bir adım kaldı şu kodlarla. Aşağıdaki kodlarla il alanı seçili geliyor. İl alanı seçili olduğu için, o il'e ait bütün ilçeler geliyor. Tek sorun, veritabanındaki ilçe seçili gelmiyor. O il'in ilk ilçesi ne ise o geliyor. Mesela "Ankara" il'inin ilçeleri "Altındağ", "Ayaş" vs. Veritabanındaki ilçe "Ayaş" olmasına rağmen, ilk ilçe seçili geliyor, yani "Altındağ".
var ilceler = {
"Ankara": [
"Altındağ",
"Ayaş",
"Bala"
]
};
function updateIlceler() {
var ilSelect = document.getElementById('il');
var ilceSelect = document.getElementById('ilce');
var selectedIl = ilSelect.value;
ilceSelect.innerHTML = '';
if (selectedIl in ilceler) {
for (var i = 0; i < ilceler[selectedIl].length; i++) {
var option = document.createElement('option');
option.text = ilceler[selectedIl][i];
option.value = ilceler[selectedIl][i];
ilceSelect.add(option);
}
}
}
document.getElementById('il').addEventListener('change', updateIlceler);
updateIlceler();
Sorunu yapay zeka'ya (Gemini) sordum. Çözümü şöyle verdi. Sorun çözüldü. Cevap için teşekkür ederim.
$_POST['ilannumarasi'];
if (!mkdir("images/yenieklenenler/$ilannumarasi")) {
echo "Klasör oluşturma hatası!";
exit;
}
for($i=0; $i<count($_FILES['dosya']['name']); $i++) {
$dosyaadi[] = basename($_FILES['dosya']['name'][$i]);
$yuklenendosya = $_FILES['dosya']['tmp_name'][$i];
$hedefyol = "images/yenieklenenler/$ilannumarasi/" . $dosyaadi[$i];
move_uploaded_file($yuklenendosya, $hedefyol);
}
$resimler = implode(', ', $dosyaadi);
$query = "INSERT INTO yenieklenenler (yenieklenenler_resim, yenieklenenler_ad, yenieklenenler_ilannumarasi) VALUES ('$resimler', '$emlakadi', '$ilannumarasi')";
if (mysqli_query($db, $query) === TRUE) {
echo '<div style="margin-top:25px; text-align:center; font-size:35px;"> Kayıt Başarıyla Gerçekleştirildi</div>';
header("refresh:3; url=yenieklenenler.php");
} else {
echo '<div style="margin-top:25px; text-align:center; font-size:35px;"> Kayıt Başarısız. <br> Geldiğiniz Sayfaya Yönlendiriliyorsunuz.</div>';
header("refresh:5; url=yenieklenenler.php");
}
Update yapmak istediğim sayfaya gittiğimde il ve ilçe kısmını "selected='selected'" şeklinde çekebiliyorum ama il'i çektiğimde ilçe alanında sadece çektiğim veri gözüküyor. Diğer ilçeler görünmüyor.
Mesela, Veritabanına insert ettiğim veri il:İstanbul, ilçe:Kadıköy olsun.
Update sayfasında il alanı: İstanbul, ilçe alanı:Kadıköy görünüyor. İlçe alanında sadece çektiğim veri görünüyor. Diğer illerin de görünmesi lazım ki, kullanıcı diğer ilçeleri de seçebilsin.
İlçeler şu şekilde görünüyor. İl ve ilçeyi çektim diyelim. İl kısmını değiştiriyorum, mesela "Ankara" yapıyorum. Tekrar il kısmını İstanbul yaptığımda ilçeler görünüyor.
Bir resim koyayım daha iyi olur.
https://hizliresim.com/t6i0vpd
<option>.....</option>
Şimdi benim buradaki sorunum şu: Insert işleminde bir problem yok ama düzenleme işleminde var. Düzenle linkine yani
<a href="digersayfa.php=idgonder<?php echo $sorgu['id']; ?>"></a>
bu şekilde id gönderdiğimde, düzenleme sayfasına gittiğinde value'su "text" olan verileri alabiliyorum. İl seçimini de aşağıdaki şekilde yapabiliyorum
<Option Value="Samsun"
<?php if($vericek['yenieklenenler_il'] === "Samsun") { ?>
<?php
echo 'selected="selected"';
}
?>
>Samsun
</Option>
ama ilçe alanı boş. Yani ne veritabanındaki ilçeyi çekebiliyorum ne de veritabanındaki il'e ait diğer ilçeleri görüntüleyebiliyorum. Eğer il seçeneğini değiştirirsem ve tekrar o il'i seçersem, veriler geliyor. Veritabanındaki ilçe yine seçili değil tabiki.
Arkadaşlar javascript ile yapılan bir il-ilçe uygulamasında il kısmını, kodunu koyduğum şekliyle yaptım ama ilçe kısmı farklı. Sayfada düzenleme yapacağımda il'e uygun ilçeyi bu kodlarla nasıl seçtirebiliriz, veritabanından nasıl çektirebiliriz? Bu arada il ve ilçe uymuyor. Örnek olarak koydum.
İl kısmına örnek aşağıda.
<Option Value="Samsun"
<?php if($vericek['yenieklenenler_il'] === "Samsun") { ?>
<?php
echo 'selected="selected"';
}
?>
>Samsun
</Option>
İlçe kısmına örnek aşağıda.
<select name="ilce" id="ilce" value="<?php echo $vericek['yenieklenenler_ilce']; ?>" class="validate[required]" required="required">
<option value=""></option>
</select>
function findObj(n, d) { //v4.01
var p,i,x;
if(!d) d = document;
if((p = n.indexOf("?"))>0&&parent.frames.length) {
d = parent.frames[n.substring(p+1)].document;
n = n.substring(0,p);
}
if(!(x = d[n])&&d.all) x = d.all[n];
for (i = 0; !x&&i<d.forms.length;i++) x = d.forms[i][n];
for (i = 0; !x&&d.layers&&i<d.layers.length;i++) x = MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x = d.getElementById(n);
return x;
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
new Array('Zonguldak','Devrek'),
new Array('Zonguldak','Ereğli'),
new Array('Zonguldak','Gökçebey'));
var semtler = new Array();
function set_child_listbox(sSource,sTarget,childArray,sifirla,tip) {
//önce temizlik ;)
var parentObject = findObj(sSource);
var childObject = findObj(sTarget);
var base=0;
if(sifirla==1)
{
base=-1;
}else
{
base=0;
}
for(var i=childObject.length;i>base;i--) {
childObject.options[i] = null;
}
//childObject.options[0] = new Option("Seçiniz","");
//var selIndex = parentObject.options[parentObject.selectedIndex].value;
var selIndex = parentObject.value;
if (selIndex == "") {
//childObject.disabled = true;
} else {
childObject.disabled = false;
var childIndex = base+1;
for (i = 0; i < childArray.length; i++) {
if (childArray[i][0+tip] == selIndex) {
childObject.options[childIndex+1] = new Option(childArray[i][1+tip], childArray[i][1+tip]);
childIndex++;
}
}
}
childObject.selectedIndex = 0;
if(document.getElementById('nvar_alan_1').value == 'Türkiye' || document.getElementById('nvar_alan_1').value == ''){childObject.focus();}else{document.getElementById('ilce').style.display='none';document.getElementById('nvar_alan_4').style.display='block';document.getElementById('nvar_alan_5').style.display='block';}
}
Arkadaşlar cevaplar için teşekkür ediyorum. Şu şekilde hallettim, checkbox'ları. Peki select'ler için nasıl alabiliriz verileri.
value="<?php if($verilericek['yenieklenenler_meyveler'] === "Erik") { ?>"
<?php
echo 'checked="checked"';
} else {
echo 'checked=""';
}
?>