lostyazilim
tr.link

Sayfa yüklenir yüklenmez AJAX ile POST, onchange, select, selected option sorunu

8 Mesajlar 1.682 Okunma
lstbozum
tr.link

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
Merhabalar...

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.

Konuya vakıf forumdaşlarımızın desteğini rica ediyorum.

Teşekkürler.
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
reklam

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
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
BEYAZMASTER

kişi bu mesajı beğendi.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

ikodev adlı üyeden alıntı

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.

Biraz çalışayım üzerinde...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
ikodev Üstadım post işlemini ajax ile yaptığımı eklemedim.

Formda 1.in de bunu algılamasını sağlamak nasıl mümkün olabilir...?

diye düşünüyorum...


Sayfanın bölümündeki kod şöyle;



<script>
function fetch_select(val)
{
$.ajax({
type: 'post',
url: 'product_update_all_fetch_data.php',
data: {
get_option:val
},
success: function (response) {
document.getElementById("second_selectbox").innerHTML=response;
}
});
}
</script>



Bu koda page on load / trigger vs entegre etmeye çalıştım, doğru kodu bulamadım, tamamen bozuluyor...

Sadece noksan ifade ettiğim kısımları tamamlayayım istedim.

Yeterince vaktinizi aldık gene bugün.

Hayırlı akşamlar...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
wmaraci

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
<script>
function fetch_select(val)
{
$.ajax({
type: 'post',
url: 'product_update_all_fetch_data.php',
data: {
get_option:val
},
success: function (response) {
document.getElementById("second_selectbox").innerHTML=response;
}
});
}

if( isset($seciliKategori) )
{
echo "fetch_select({$seciliKategori})";
}
?>
</script>


Ş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
BEYAZMASTER

kişi bu mesajı beğendi.

srkn12 srkn12 PHP - Javascript - Java Kullanıcı
  • Üyelik 28.03.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilişim
  • Konum Denizli
  • Ad Soyad S** K**
  • Mesajlar 411
  • Beğeniler 67 / 90
  • Ticaret 0, (%0)
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>





BEYAZMASTER

kişi bu mesajı beğendi.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

ikodev adlı üyeden alıntı

<script>
function fetch_select(val)
{
$.ajax({
type: 'post',
url: 'product_update_all_fetch_data.php',
data: {
get_option:val
},
success: function (response) {
document.getElementById("second_selectbox").innerHTML=response;
}
});
}

if( isset($seciliKategori) )
{
echo "fetch_select({$seciliKategori})";
}
?>
</script>


Ş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;

if( isset($seciliKategori) )
{
echo "fetch_select({$seciliKategori})";
}
?>


***


Sonra;

$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.

Kolaylıklar dilerim...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

srkn12 adlı üyeden alıntı

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ı...

HEPİNİZİN İŞİ, GÜCÜ HEP RAST GİTSİN İNŞ"ALLAH"...
ikodev srkn12

kişi bu mesajı beğendi.

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al