Oldukça araştırmama ve uğraşmama rağmen henüz çözemediğim ve kullanıcıya zorluk çıkartan bir problemi belki konuya hakim bir forumdaşımız destek sağlar düşüncesi ile paylaşıyorum;
Kodlar şunlar;
1.SELECT (Kategoriler)
2.SELECT (Ürünler)
Birinci select içinde selected olan bir kategori olduğunda OTOMATİK OLARAK ikinci select içinde ÜRÜNÜN SEÇİLİ HALE GELMESİ GEREKİR iken maalesef bu olmuyor!
İllaki kategoriyi önce değiştirmek, sonra aynı kategoriyi tekrar seçmek gerekiyor.
Ancak bu şekilde 2. select içinde seçilen kategoriye ait ürünler listeleniyor.
Özetle selected yapmanın herşeyi otomatikman seçili hale getirmek fakat bu örnekte işi 2 katına çıkartıyor ve hatta kullanıcı formun takılı kaldığını, çalışmadığını sanabiliyor.
SORUNUN ÖZETİ ŞU;
SAYFA İLK YÜKLENDİĞİNDE KATEGORİ SELECT'İ SEÇİLİ YANİ selected OLDUĞU İÇİN BİR TETİKLEME NOKSANLIĞI VAR...
Umarım sorunu anlaşılır şekilde paylaşabilmişimdir.
Eğer "selected" değeri ekliyorsanız muhtemelen bir GET-POST tetikleyicisi ile hangisi seçildiyse buna göre "selected" koyuyorsunuz. Bu tarz durumda "selected" yapılan değerin id'sini alıp diğer select'e bu seçilen id'e göre verileri listelemelisiniz.
Bu durumda ne olacak? Müşterinin tekrar seçmesine gerek kalmayacak çünkü seçili olan php yardımıyla zaten önceden yuklenmiş olacak. Haliyle sorununuz ortadan kalıyor.
Eğer "selected" değeri ekliyorsanız muhtemelen bir GET-POST tetikleyicisi ile hangisi seçildiyse buna göre "selected" koyuyorsunuz. Bu tarz durumda "selected" yapılan değerin id'sini alıp diğer select'e bu seçilen id'e göre verileri listelemelisiniz.
Bu durumda ne olacak? Müşterinin tekrar seçmesine gerek kalmayacak çünkü seçili olan php yardımıyla zaten önceden yuklenmiş olacak. Haliyle sorununuz ortadan kalıyor.
Burda jslik bir sorun yok yani
Peşinen teşekkür edeyim önce üstadım...
"muhtemelen bir GET-POST tetikleyicisi ile hangisi seçildiyse buna göre "selected" koyuyorsunuz."
Php ile listeleme ve if kontrolü yapıyorum listelenen kategorilerden biri ile mevcut kategori aynı ise otomatikman selected oluyor.
"Bu tarz durumda "selected" yapılan değerin id'sini alıp diğer select'e bu seçilen id'e göre verileri listelemelisiniz."
Listelenen kategorilerin "id"si bildiğim kadarı ile yok ama bilmediğim bir şeyi kasdediyor olabilirsiniz...
Sadece 2.select öğesinin id değeri var...
&
Müşterinin tekrar seçmesine gerek kalmayacak çünkü seçili olan php yardımıyla zaten önceden yuklenmiş olacak. Haliyle sorununuz ortadan kalıyor.
Güzel bir cümle! :)
Burda jslik bir sorun yok yani => Umarım böyledir, php ile çözümü varsa eninde sonunda bulunuyor.
Şeklinde düzeltme yapıp $seciliKategori değişkenini ilk select işleminde tanımlarsanız (değişkenin değeri o selectin idsi olabilir veya ney ile eşleştiriyorsanız o değeri koyarsınız)
Böylelikle $seciliKategori diye bir değişken varsa echo yardımıyla fonksiyon adını içine değer gönderek fonksiyonu çalıştırır böylelikle sayfa yüklendiğinde fonksiyon çalışmış olup sanki bir kategori çekmiş gibi işlem yapar
Şeklinde düzeltme yapıp $seciliKategori değişkenini ilk select işleminde tanımlarsanız (değişkenin değeri o selectin idsi olabilir veya ney ile eşleştiriyorsanız o değeri koyarsınız)
Böylelikle $seciliKategori diye bir değişken varsa echo yardımıyla fonksiyon adını içine değer gönderek fonksiyonu çalıştırır böylelikle sayfa yüklendiğinde fonksiyon çalışmış olup sanki bir kategori çekmiş gibi işlem yapar
Hocam ALLAH RAZI OLSUN ilginizden dolayı...
Umutla denedim ama çalışmadı nedense...
***
Önce head içindeki ajax koduna paylaştığınız bölümü olduğu gibi, değiştirmeden ekledim;
$seciliKategori değişkenini, selected olan kategori ile eşitledim ve onu optionun id değeri haline getirdim. Id değerinde Türkçe,özel,boşluk karakter problemi de yok.
Kaynak koda bakıp doğruladım.
***
Id değerini optiona da 1.selecte de ayrı ayrı tanımlamayı denedim...
***
Head içindeki kodları body içine selectlerden sonraki bir bölüme yapıştıp o şekilde de denedim...
Ama 2.select seçili (selected) kategoriyi algılamıyor hala...
Sonuca çok yaklaştığımızı zannediyorum...
Kodun son hali şöyle;
if($data["cat{$i}_nam"]!=null AND $data["cat{$i}_nam"]!="" AND $data["cat{$i}_nam"]==$kayit["product_single_cat"] ) { $seciliKategori = $data["cat{$i}_nam"];
echo '
'; }
//
else if($data["cat{$i}_nam"]!=null AND $data["cat{$i}_nam"]!="" AND $data["cat{$i}_nam"]!=$kayit["product_cat_nam"] ) { echo '
'; }
//
else { echo ""; } ?>
Not: Üstadım alttaki mesajlarda da göreceğiniz üzere; sağolsun srkn12 üstadımızın katkısıyla bir çözüme ulaşmak mümkün oldu.
Fakat ben gene de sizin paylaştığınız yöntemi tam anlamaktan ve tam anlamıyla denemekten vazgeçmiş değilim.
Ekleyeceğiniz bir husus, benim atladığımı yada yanlış uyguladığımı gözlemlediğiniz bir detay varsa ve bunları paylaşırsanız son bir deneme yapmak taraftarıyım.
Anladığım kadarıyla bir şeyler yazdım. Umarım yardımcı olur. :)
TEST SELECT
<script></script>
<script>
// Sayfa hazır olduğunda çalışır $(document).ready(function() {
var productCatValue = $("select[name='product_cat']").val();
if(productCatValue.length != 0) { fetch_select(productCatValue); // Sayfa yüklendi ve kategori seçili olduğu için fonksiyon çalıştırıldı. }
});
function fetch_select(val) {
}
</script>
Çok çok sağolun üstadım... Şimdi yeni bir umutla deniyorum...
Sonucu paylaşacağım...
ALLAH RAZI OLSUN üstadım, ÇALIŞTI ÇOK ŞÜKÜR...
Sizin için kolay olan bu mutlak ulaşmam gereken çözüme ulaşmak için dünden beri toplamda en az 12 saat araştırma, deneme yaptım yetmedi destek aldım ama olmadı...
srkn12 üstadım size de, ikodev üstadıma da, zfczfc üstadıma da çok çok teşekkür ediyorum ayırdığınız vakitten, verdiğiniz emeklerden dolayı...