1. sayfa
Daha önce yazmadım bu tarz bir şey ama yaparsam ilk olarak.. : KOd yazamıyacağım mantığını düşünmeye çalışıyorum. DataBase n de markalara ID vererek sakladığını farzediyorum, checkbox tan gelen veriyi sayfanda yakalarsın, marka=12,13,14,15,16 gibi gelsin veriler, Yakaladığın sayfanda bunu dizi yaparsın bir döngüyü bu gelen dizi ile döndür, foreach ile dizinin her elemanını oku, bu sayede kaç tane olduğunun bir önemi kalmaz, her seferinde bir elemana ait bütün ürünleri çek ve ekrana yazdır. sonrası malum mysql den veri okuma mantığına kalıyor.. Kodlar tam çalışmaya bilir mantığını anlatmak için yazdım sadece, Umarım anlaşılır olabilmiştir. <?php $markalar= array("12", "13", "14", "15"); // Gelen marka ıd leriyle oluşturdun $baglanti = mysql_connect( "localhost", "root", "pass" ); mysql_select_db( "veritabanim" ); //mysql e bağlandın foreach ($markalar as $marka_ID_for_each) { // // BU kısma $sorgu = mysql_query( "SELECT * FROM urunler WHERE marka_ID = "$marka_ID_for_each";" ); while( $row = mysql_fetch_array( $sorgu ) ) { echo $row['marka_ID'] ; } } mysql_close(); ?> |
Soldaki her grubun veritabanında bir ID'ye sahip olduğunu düşünürsek cinsleri listelerken <input type="checkbox" name="cins[3]" value="1" /> burada 3 değeri veritabanındaki id'si. <input type="checkbox" name="cins[3]" value="1" /> Bot <input type="checkbox" name="cins[5]" value="1" /> Çizme ----- <input type="checkbox" name="marka[25]" value="1" /> Versace <input type="checkbox" name="marka[67]" value="1" /> Converse <input type="checkbox" name="marka[32]" value="1" /> Tralala Arka tarafta şunu yapabilirsin <?php Uzun lafın kısası bu :) |
Olayı bu şekilde bi sonuca kovuşturdum skıntı yok çalışıyor ama sıkıntınun kendisi bu seferde checkboxlar oldu :D yani check edildiğinde ilgili idler gelicek üzerine tıkrar tıklandığında o diziden çıkartılcak onu çözemedim $markasorgugelen = $_GET["secim"]; $toplam = @explode(",",$markasorgugelen); foreach ($toplam as $markaidleri) { $urunvitrin = @mysql_query("SELECT * FROM urunler WHERE marka = '$markaidleri' ORDER BY urunid ASC "); while($vitrin = @mysql_fetch_assoc($urunvitrin)) { $urun_adi = @stripslashes($vitrin["urun_adi"]); echo $urun_adi."<br>"; } } |
Checkbox cheched olmuşsa yani tıklanmışsa üzerine tekrar tıkladığımda aynısını çağırıp duruyor 3,3,3,3,3 şeklinde ben mesele 1,2,3 seçilmişse 3 e tıkladığım zaman 1,2 olarak gelsin istiyorum |
Sonucu doğrudan paylaşırmısın hatayı anlamaya çalışalım, Misal 10 tane cb. nin 3 üncü sünü seçince 3 tane 3 mi yolluyor ondan öncekilerin seçilmişliğine bakarakmı yoksa bakmıyarakmı yolluyor. Kaç tane seçilmişse o kadar mı 3 yolluyor Misal en son 3. cb yi seçmişsindir ama ondan küçük 1 tane daha seçmişsindir bu durumda 2 tane 3 mi yolluyor? Büyük ihtimalle verileri okurken $markasorgugelen = $_GET["secim"]; kısmına gelen veriyle ilgili bir durum içine cb lerden gelen verileri atarken hata yapıyorsun. Bak Ben bir örnek atayım çoklu cb işlemleriyle ilgili sana hazır bulduğum. HTML/
PHP/
|
Benim hazırladığım kodlardan yola çıkarak kendinize göre düzenlerseniz sorununuz kalmaz. Yaptığınız ile sorundan kurtulamazsınız. Ha, veritabanınızı şu ana dek benim kine uygun hazırlamadıysanız bilemiyorum tabii. |
Abi php de yeniyim yeni yeni bişiler yapmaya çalışıyorum biraz bilgim var evet ama çok iyi değilim yani :) sana zahmet bana bu kodun full halini veritabanı örneğiyle çalışır bi şekilde verebilirmsin |
Veriyi okurken değilde ben gönderirken nasıl göndereyim submit button istemiyorum tıklayınca sorgu okusun istiyorum bunu çözemedim :D kullandığım bu kodda $markasorgugelen = $_GET["secim"]; $toplamdiller = @explode(",",$markasorgugelen); foreach ($toplamdiller as $marka_ID_for_each) { $urunvitrin = @mysql_query("SELECT * FROM urunler WHERE marka = '$marka_ID_for_each' ORDER BY urunid ASC "); while($vitrin = @mysql_fetch_assoc($urunvitrin)) { $urun_adi = @stripslashes($vitrin["urun_adi"]); echo $urun_adi."<br>"; } } |
jquery ile okursun. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> function kayitol(){ var veriler = $('#FORM IDSINI BURAYA YAZIN').serialize(); $.ajax({ type: "POST", url: "SAYFA BURAYA.php", data: veriler, success:function(cevap){ $("#SONUC YAZDIRACAGINIZ DIV IDSI").html(""+cevap); } })}; </script> |
Cevap için tşkler kardeşim deneyip sonucu buraya yazacağım şunu bitirip paylaşayımda benim gibi sıkıntı çekenler dertten kurtulsun :D |
bir eksiğim var founction kayıtol varya onu kendi isteminde uygun yere göre isimlendirip gerekirse https://api.jquery.com/checkbox-selector/ adresinde bulunan yönergelere göre de ayarlaya bilirsin jquerry de checkbox un seçili olduğnu anlamak için onclick felan kontrol etmene gerek yok.. Bura daki yönetmelikle her checkbox seçildiğinde işlem yollamasını sağlaya bilirsin. Ben daha çokhttp://www.w3schools.com/jquery/sel_input_checkbox.asp de bulunan örnekleri seviyorum yalnız :) kendinde deneyebiliyorsun herhalde bu yüzden seviyorum. w3schools u aklının köşesine yaz :) php kullanıcaksan jquery i de öğren çok kasıntı ve zor birşey değil belli kalıplarla içeri çağırdığın bir java script kütüphanesinde bulunan fonksiyonları çalıştırıyorsun ve yardım konusunda çok iyi. |
Ajax işlemlerine değinmişim bi ara:http://www.trkodlama.com/makaleler/jquery-post-ile-ajax-islemleri-209.html togl.me ile verdiğim bazı linkler var. Onlar ölü. jquery.com'un sitesine gidiyor o linkler. Oradan kontrolünü sağlayabilirsin o fonksiyonlar. |
Rica etsem son halini paylaşabilirmisiniz. Bu forma benimde çok ihtiyacım var. |
1. sayfa
Arkadaşlar Resimdeki Gibi Çoklu Seçim Checkbox Arama Yapımı veya filtreleme yapımı olayını daha önceden yapmış veya bana fikir verecek varsa sevinirim iki gündür uğraşıyorum hep bi hata hep bi sıkıntı submit butonlu bir arama olayı değil bu bu arada çok daha gelişmiş bi mantık seçilince gelen ürünler mesela marka iki marka seçili ise o markalar gelicek veya numara vs. yardımcı olursanız sevinirim.
< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.