• 07-05-2020, 23:46:56
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    merhaba arkadaşlar aşağıdaki gibi bir formum var bu forma girilen il ilçe like search yapmak istedim ama bir türlü yapamadım ücretli yada ücretsiz farketmez yardımcı olabilirmisini?

    html kodlarım
    <input type="text" id="search" placeholder="İstanbul, Türkiye">
    <div id="res-wrapper"></div>
    javascript kodlarım
    $("#search").bind("input", function() {
    $.ajax({
    url: "ajax.php" ,
    type: "POST",
    data: { "q": $(this).val() },
    success: function(res) {
    $('#res-wrapper').html(res);
    }
    });
    });
    ajax.php de $sehirler değişkenim bu yapıda tüm il ve ilçeleri barındırıyor

    Array
    (
    [ADANA] => Array
    (
    [sehir_id] => 9146
    [ulke] => TURKIYE
    [sehir] => ADANA
    [ilce] => ADANA
    [uzun_adi] => ADANA-MERKEZ
    [tam_adi] => TURKIYE-ADANA-MERKEZ
    [url] => /tr-TR/9146/adana-icin-namaz-vakti
    )
    
    [ALADAĞ] => Array
    (
    [sehir_id] => 9147
    [ulke] => TURKIYE
    [sehir] => ADANA
    [ilce] => ALADAĞ
    [uzun_adi] => ADANA-ALADAĞ
    [tam_adi] => TURKIYE-ADANA-ALADAĞ
    [url] => /tr-TR/9147/aladag-icin-namaz-vakti
            )
    şöyle bir şey yaptım ajax.php de ama ADANA yazarsam geliyor adana yazarsam gelmiyor ve harflere duyarlı olarak autocomplete olmuyor
    $gelen = $_POST['q'];
    
    if ($gelen) {
    
    $idNumber = $gelen;
    
    if (isset($sehirler[$idNumber])) {
    
    
    echo "<div class='item' data-url='/{$sehirler[$idNumber]['sehir_id']}'> {$sehirler[$idNumber]['ilce']} </div>";
    }
    
    }
  • 08-05-2020, 00:02:11
    #2
    Hocam ajax ile sorgu gönderdiğin yani query'yi işlediğin sayfada sorgulanan kelimeleri strtolower() ile küçük harfe dönüştürerek, ve trim() ile başında ve sonunda ki boşlukları silerek veritabanında da LOWER() ile sorgulatarak karşılaştırma sorgulama yapabilirsin.

    Mesela;
                    $sorgu = "adana";
                    $sql = "Select * From TABLOADI Where TRIM(LOWER(KOLON)) = trim(strtolower(".$sorgu."))";
    şeklinde yapabilirsin, tabi Türkçe karakter problemi yaşanma ihtimali varsa bunu da göz önünde bulundurman gerekecek.

    Eğer json olarak tutuyorsan veriyi o zaman karşılaltırma işlemini yine burda ki karşaılatırma kuralını göz önünde bulundurarak yapman gerekli
  • 08-05-2020, 00:09:46
    #3
    InternettinHoca adlı üyeden alıntı: mesajı görüntüle
    Hocam ajax ile sorgu gönderdiğin yani query'yi işlediğin sayfada sorgulanan kelimeleri strtolower() ile küçük harfe dönüştürerek, ve trim() ile başında ve sonunda ki boşlukları silerek veritabanında da LOWER() ile sorgulatarak karşılaştırma sorgulama yapabilirsin.

    Mesela;
                    $sorgu = "adana";
                    $sql = "Select * From TABLOADI Where TRIM(LOWER(KOLON)) = trim(strtolower(".$sorgu."))";
    şeklinde yapabilirsin, tabi Türkçe karakter problemi yaşanma ihtimali varsa bunu da göz önünde bulundurman gerekecek.

    Eğer json olarak tutuyorsan veriyi o zaman karşılaltırma işlemini yine burda ki karşaılatırma kuralını göz önünde bulundurarak yapman gerekli
    hocam veriler veritabanında değil açıkçası ​Burdaki​​​ ücretsiz apiyi kullandım yaptığım iş ise kendime eğlence olsun geliştirmek için, ama 3-4 gün uğraştım yapamayınca bu konuyu açma gereği duydum
  • 08-05-2020, 00:16:15
    #4
    Veri kaynağı hiç farketmez hocam, kaynaktaki veri ile aynı içerik ve karakterleri aynı olarak sağlaman yeterli, kaynakta büyük ise senin sorgudan gelenin tamamı büyük, kaynaktakiler küçükse senin sorgudan geleni tamamı küçük şekilde karşılaştırman gerekli.

    Yani kısacası sorun büyük/küçük harf farklarından kaynaklı bunu uygun şekilde aşman gerekiyor
  • 08-05-2020, 01:48:47
    #5
    InternettinHoca adlı üyeden alıntı: mesajı görüntüle
    Veri kaynağı hiç farketmez hocam, kaynaktaki veri ile aynı içerik ve karakterleri aynı olarak sağlaman yeterli, kaynakta büyük ise senin sorgudan gelenin tamamı büyük, kaynaktakiler küçükse senin sorgudan geleni tamamı küçük şekilde karşılaştırman gerekli.

    Yani kısacası sorun büyük/küçük harf farklarından kaynaklı bunu uygun şekilde aşman gerekiyor
    harflerden ayrı inputa a yazınca içerisinde a geçen il ve ilçereide göstermesini yapamadım