v2.5.2
Giriş yap

Aynı ID'de birden fazla veri var ise..

noyz
631 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Selamlar, kendimi geliştirme amaçlı başladığım projede bir sorunla karşılaştım ve size danışmaya karar verdim.

Müşteriler adres defterlerine birden fazla adres ekleyebiliyor, fakat sıra bu adresleri admin panelinden görüntülemeye gelince biraz tıkandım.

Adresler veritabanına aşağıdaki gibi kaydediliyor.

Örneğin adres başlıkları kısmından 'Ev' başlıklı adresi seçtiğimde inputlar 'Ev' başlıklı adresin verileriyle dolsun. Fakat aynı customer_ID'ye sahip verileri nasıl ayrı ayrı çekebileceğimi çözemedim. Küçük bir örnek yardımıyla gösterirseniz benim için çok daha iyi olur, teşekkürler.

Cevap yaz
Cevaplar (2)
noyz
1697 gün önce

Çok teşekkür ederim hocam :).

tayfunerbilen
1697 gün önce

Elinde address_ID'lerin var selectbox'dan seçtiğin. Örneğin selectbox html çıktın şöyle olsun;

<select name="address_id" id="address-selectbox">
    <option value="">Seçin</option>
    <option value="1">Ev</option>
    <option value="2">İş</option>
</select>

Selectbox'ı jquery ile dinlersin, bir değişiklik olduğunda yani listeden birini seçtiğinde, hangisini seçtiğini biliyorsun. ID'yi alıp bir ajax dosyasına yollarsın.

$('#address-selectbox').on('change', function(){
    let id = $(this).val();
    if ( id != '' ){
        $.post('ajax/address-change.php', {'address_id': id}, function(response){
            if (response.error){
                alert(response.error);
            } else {
                // aşağıda düzelteceğiz burayı
            }
        }, 'json');
    }
});

address-change.php dosyanda şöyle bir mantıkta olabilir;

<?php

$response = [];
$id = $_POST['id'];

if (!$id){
    $response['error'] = 'ID değeri eksik';
} else {
    
    // db den idye ait verileri çekersin
    // $row = $db->query('bla bla bla')->fetch(PDO::FETCH_ASSOC);
    
    // eğer varsa bilgileri json olarak geri döndürürsün
    if ($row){
        $response['data'] = $row;
    } else {
        $response['error'] = 'Adres bilgisine ulaşılamıyor.';
    }
    
}

echo json_encode($response);

sonuç olarak $.post işlemini yaptıktan sonra eğer başarılıysa else kısmında adres detaylarına ulaşacaksın;

$('#address-selectbox').on('change', function(){
    let id = $(this).val();
    if ( id != '' ){
        $.post('ajax/address-change.php', {'address_id': id}, function(response){
            if (response.error){
                alert(response.error);
            } else {
                console.log(response.data);
                
                console.log(response.data.first_name);
                console.log(response.data.last_name);
            }
        }, 'json');
    }
});

bu saatten sonra alıp değerleri inputlara doldurabilirsin, ne yapacağına sen karar ver :)