Arama butonu
Bu konudaki kullanıcılar: 1 misafir
13
Cevap
5174
Tıklama
0
Öne Çıkarma
Php Chechbox Arama Veya Filtreleme
C
10 yıl
Çavuş
Konu Sahibi

https://store.donanimhaber.com/94/d4/44/94d4447e239b7664f74d7e4546503051.jpg

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

Üye Ol Şimdi Değil



E
10 yıl
Yüzbaşı

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();
?>


Bu mesaja 1 cevap geldi.
O
10 yıl
Yarbay

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 
$where = array();
if(isset($_POST['cins'])){
$cins = $_POST['cins'];
$cinsSQL = array();
foreach($cins AS $k=>$v){
$cinsSQL[] = "ayakkabicinsi=$k"; // ayakkabicinsi dediğim ayakkabılar tablonda bir kolon ;)
}

$cins = implode(" OR ", $cinsSQL);
$where[] = $cins;
}

if(isset($_POST['marka'])){
$marka = $_POST['marka'];
$markaSQL = array();
foreach($marka AS $k=>$v){
$markaSQL[] = "ayakkabimarkasi=$k"; // ayakkabimarkasi dediğim ayakkabılar tablonda bir kolon ;)
}

$marka = implode(" OR ", $markaSQL);
$where[] = "(".$marka.")";
}

$countWhere = count($where);
if($countWhere >= 1){
$where = implode(' AND ',$where);
$where = "WHERE $where";
}else{ $where = ""; }

$SQL = "SELECT * FROM products $where";
?>


Uzun lafın kısası bu :)


Bu mesaja 1 cevap geldi.
C
10 yıl
Çavuş
Konu Sahibi

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>";
}
}


Bu mesaja 2 cevap geldi.
C
10 yıl
Çavuş
Konu Sahibi

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


Bu mesaja 1 cevap geldi.
E
10 yıl
Yüzbaşı

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/
 
<input type="checkbox" name="recurdays[]" value="monday" /> Monday
<input type="checkbox" name="recurdays[]" value="tuesday" /> Tuesday
<input type="checkbox" name="recurdays[]" value="wednesday" /> Wednesday
<input type="checkbox" name="recurdays[]" value="thursday" /> Thursday
<input type="checkbox" name="recurdays[]" value="friday" /> Friday
<input type="checkbox" name="recurdays[]" value="saturday" /> Saturday
<input type="checkbox" name="recurdays[]" value="sunday" /> Sunday



PHP/
 
$j = 0;
for($i=0;$i<count($_POST[recurdays]);$i++)
{
if($_POST[recurdays][$i]!= "") {
$j++;
$days = $_POST['recurdays'][$i];
$recurdays .= $j.":".$days.",<br />";
}
}


Bu mesaja 1 cevap geldi.
O
10 yıl
Yarbay

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Ctirtir
C
10 yıl
Çavuş
Konu Sahibi

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




Bu mesajda bahsedilenler: @oralunal
C
10 yıl
Çavuş
Konu Sahibi

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>";
}
}


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @ecarpar
E
10 yıl
Yüzbaşı

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>


Bu mesaja 1 cevap geldi.
C
10 yıl
Çavuş
Konu Sahibi

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


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @ecarpar
E
10 yıl
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
O
10 yıl
Yarbay

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.



Y
5 yıl
Er

Rica etsem son halini paylaşabilirmisiniz. Bu forma benimde çok ihtiyacım var.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.