lostyazilim
tr.link

PHP de tıklama olayı

14 Mesajlar 2.764 Okunma
acebozum
tr.link

omerhalil omerhalil WM Aracı Kullanıcı
  • Üyelik 31.03.2020
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğretmen
  • Konum Trabzon
  • Ad Soyad Ö** H**
  • Mesajlar 7
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
Merhaba arkadaşlar, bir sorum olacaktı. Belki çok kolay belki çok zor bilmiyorum.
Sitemin anasayfasında;
GÜN | HAFTA| AY | YIL
şeklinde navbarım var. Bunlara tıklandığında ayrı ayrı veri tabanı sorgusu çalıştıracağım. Nasıl yapabilirim.

Örn: GÜN e tıkladığımda günlük kayıtların sorgusu çalışacak, HAFTA için haftalık kayıtların sorgusu çalıştıracak. Sorgu işlemi TIKLAMA İŞLEMİ YAPILDIĞINDA olacak. Bütün sorguları çalıştırıp verileri sayfaya dökmek verimli olmaz diye düşündüm. Yardımlarınızı bekliyorum.
 

 

wmaraci
reklam

ictaysi ictaysi taysiweb.com Kullanıcı
  • Üyelik 05.08.2017
  • Yaş/Cinsiyet 25 / E
  • Meslek Mezun
  • Konum Balıkesir
  • Ad Soyad İ** C**
  • Mesajlar 80
  • Beğeniler 20 / 10
  • Ticaret 1, (%100)
Tıklanılan nesnelerin jquery ile click eventine ajax methodunu yazarsanız json verileri çekip sayfanıza yazdırabilirsiniz.
forzayandex

kişi bu mesajı beğendi.

mkarson mkarson Web Dev. - Sec. Expert Kullanıcı
  • Üyelik 20.06.2016
  • Yaş/Cinsiyet 31 / E
  • Meslek Web Developer - Security Exp.
  • Konum İstanbul Anadolu
  • Ad Soyad M** K**
  • Mesajlar 196
  • Beğeniler 0 / 88
  • Ticaret 11, (%100)
Sorunuzu tam olarak anlayamamış olabilirim ama karar yapıları ile yapsanız sorununuza çözüm olur diye düşünüyorum.
Navbara link verin : örn : index.php sayfası ise index.php?islem=gun , index.php?islem=ay gibi. sonra aşağıdaki işlemleri yapıp {} aralarına sorgu kodlarını yerleştirin.

if(@$_GET['islem']=='gun'){ //gun sorgusu }
elseif(@$_GET[''islem]=='hafta'){ //haftasorgusu }
elseif(@$_GET[''islem]=='ay'){ //aysorgusu }
elseif(@$_GET[''islem]=='yil'){ //yilsorgusu }
else{ //hicbiri tiklanmamissa}
 

 

omerhalil omerhalil WM Aracı Kullanıcı
  • Üyelik 31.03.2020
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğretmen
  • Konum Trabzon
  • Ad Soyad Ö** H**
  • Mesajlar 7
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)

ictaysi adlı üyeden alıntı

Tıklanılan nesnelerin jquery ile click eventine ajax methodunu yazarsanız json verileri çekip sayfanıza yazdırabilirsiniz.


Php ile bunu nasıl kullanabilirim. İf else şeklinde.
 

 

wmaraci
wmaraci

omerhalil omerhalil WM Aracı Kullanıcı
  • Üyelik 31.03.2020
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğretmen
  • Konum Trabzon
  • Ad Soyad Ö** H**
  • Mesajlar 7
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)

mkarson adlı üyeden alıntı

Sorunuzu tam olarak anlayamamış olabilirim ama karar yapıları ile yapsanız sorununuza çözüm olur diye düşünüyorum.
Navbara link verin : örn : index.php sayfası ise index.php?islem=gun , index.php?islem=ay gibi. sonra aşağıdaki işlemleri yapıp {} aralarına sorgu kodlarını yerleştirin.

if(@$_GET['islem']=='gun'){ //gun sorgusu }
elseif(@$_GET[''islem]=='hafta'){ //haftasorgusu }
elseif(@$_GET[''islem]=='ay'){ //aysorgusu }
elseif(@$_GET[''islem]=='yil'){ //yilsorgusu }
else{ //hicbiri tiklanmamissa}


Cevap için teşekkürler. Peki bunu javascript ile nasıl yapabilirim. index.php?islem=gun bu şeklide sayfa yenilenmesi gerekiyor sanırım. Yenileme olmadan sizin yazdığınız if else işlemini nasıl yaparım. Mantığını anlayamadım bir türlü.
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Sade php ile sayfa yenilenmeden yapamazsınız. Php + jquery ajax metoduyla bir tab sistemi oluşturmanız en mantıklısı olur
 

 


omerhalil omerhalil WM Aracı Kullanıcı
  • Üyelik 31.03.2020
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğretmen
  • Konum Trabzon
  • Ad Soyad Ö** H**
  • Mesajlar 7
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
Bootstrap ile tab kullandım.
GÜN | HAFTA| AY | YIL
Bunlara tıkladığında sayfa yenileme yapmadan tıklama yaptığım sekmenin çalışmasını istiyorum. Yani GÜN e tıkladığında sorgu veritabanından 100 tane kayıt listeleyecek. Listeleme yapıyorum. Bu tablara tıkladığında javascript ile tıklamayı alıp php de kullanamıyorum.

Anasayfam açıldığında
GÜN için => 100 tane kayıt sayfaya yüklenecek
HAFTA için => 100 tane kayıt sayfaya yüklenecek
AY için => 100 tane kayıt sayfaya yüklenecek
YIL için => 100 tane kayıt sayfaya yüklenecek

Toplamda 400 kayıt anasayfamda olacağında iyi olmayacaktır diye düşünüyorum. Ben hangisine tıklarsam o sorgu çalışşın o kayıtlar yüklensin. Hepsine sorgu yazarsam 400 kayıt arkaplanda yüklenmiş olacak :(
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Php ile sayfalara şekil vermeyi biliyorsanız şu an anlatacaklarımı anlayıp uygulayabilirsiniz diye düşünüyorum. Şimdi bir tane bu görüntülemek istediğiniz php dosyanız bir tane de arka planda işlemleri yakalayacak olan x.php dosyamız olsun. Bu bootstrap tab düğmelerinin id değerleri olur, bu düğmelere tıklandığı zaman event i yakalayıp hangi düğmeye tıklandıysa o görevi yaptıracağız. Diyelim gün tabına tıklandı x.php dosyasına diyeceğiz ki sen günlere ait verileri yolla bana, ay tabına tıklandı ise yine aynı şekilde bana aylara ait 100 tane veri yolla. Bir tanesine örnek vereyim gerisini siz onun üzerinden yaparsınız. Sayfa İlk açıldığında active olacak tab ınıza direkt php ile 100 tane veriyi yüklüyorsunuz başta zaten. Diğer tabların içi boş olsun. İlk açıldığında gün tab ı aktif olsun ve 100 tane gün kaydı listelensin. Sonra hafta tab ının düğme id sine örnek veriyorum hafta değerini verin. O tab düğmesinin açtığı tab ekranının id sine de hafta_goster deyin, tabii çalışması için gerekli değişiklikleri yapmanız gerekir orayı ayarlarsınız, id değerleri uyuşması için. Sonra jquery dosyasını çağırdınız kısımdan SONRA şu kodları yazmaya başlayın .

<script>
$(document.body).on("click",'#hafta', function () { //hafta düğmesine bastığımızda çalışacak işlemler
$.ajax({
url: 'x.php', // x.php dosyasına
method: 'POST', // POST metodu ile
data : {listele : 'hafta'}, // listele değeri hafta olan bir bilgi gönderioruz
beforeSend: function () {
//Eğer sayfaya veriler yüklenirken bir yükleniyor tarzı uyarı çıkarmak istiyorsanız buraya koldar yazabilirsiniz
//İstemezseniz de beforeSen fonksiyonun komple silin
},
success: function (response) {
$("#hafta_goster").html(response) // x.php dosyasından dönen değeri tab sisteminin hafta için olan kısmına yazdırıyoruz
}
})
});
</script>


x.php dosyasının içeriği de şöyle bir şey olsun


if (isset($_POST['listele'])) {
if ($_POST['listele'] == 'hafta') {
//Bütün bu kısımda 100 tane hafta kaydı oluşturacak kodları yazıp veri tabanından çekin ve echo ile ekrana yazdırın. ana sayfada normal listelermiş gibi
} elseif ($_POST['listele'] == 'ay') {
//Burada yıl tabı için aynı işlemleri yapın. ay değerini yakalamak için üstteki kodda olan data : {listele : 'hafta'}, kısmını data : {listele : 'ay'}, yapmanız yeterli
} elseif ($_POST['listele'] == 'yil') {
//diye devam ediyor
}
}
omerhalil

kişi bu mesajı beğendi.


omerhalil omerhalil WM Aracı Kullanıcı
  • Üyelik 31.03.2020
  • Yaş/Cinsiyet 35 / E
  • Meslek Öğretmen
  • Konum Trabzon
  • Ad Soyad Ö** H**
  • Mesajlar 7
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
@Abdullahx kodları uyguladım ve sonuç tam istediğim gibi oldu. Teşekkür az kalır herhalde. Sonuç mükkemmel :)

Yapılabilirliği var mı bilemiyorum ama HTML Kodu: alanındaki ajax kodlarını her bir sorgulama için kopya oluşturdum. Gün için hafta için Ay için Yıllık için. Belki daha fazla oluşturabilirim. Peki kopyalamadan tek başına yapabilir miyiz. (sadece öneri; tıkladığım yerdeki id alınıp ajax tıklanan id ile işlem yapsa)
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Elbette yapılır hocam, zaten makbul olanı da sizin düşündüğünüz gibi olanıdır. Bir kod şablonu olur ve aynı görevi yapan kodlar bu şablon üzerinden işlem yapar. Birkaç farklı şekilde yapılabilir, biraz da fonksiyon mantığının kolaylığını anlayabilmeniz adına şöyle bir örnek vereyim.

Bu butonlar sizin tab düğmeleriniz olsun






Düğmelere her tıklandığında fx fonksiyonunu çağıracak ve aldığı bilgileri oraya gönderecek, fonksiyon da yukarıdaki kodun aynısını yapıyor. İsteğe bağlı değerleri silip kendinize göre düzenlersiniz :)

<script>
/**
*
* @param surec - Periyot olarak hangi süreci seçtiğimizin değeri
* @param limit - Kaç adet veri listeleyeceğimizi isterseniz bu kısma değişken olarak verip php tarafında sabit olarak belirtmekten kurtulabilirsiniz. Belki ileride fikriniz değişir ve farklı bir değer vermek istersiniz
*/
function fx(surec, limit = 100) { // Eğer limit değeri verilmezse varsayılan olarak 100 kayıt seçsin
$.ajax({
url: 'x.php', // x.php dosyasına
method: 'POST', // POST metodu ile
data : {
listele : surec, // listele değerine onclick olayından aldığımız butonun id değerini veriyoruz
limit : limit // Limit de eğer belirtmezseniz 100 olarak gider, belirtirseniz belirttiğiniz saı kadar gider
}, // listele değeri hafta olan bir bilgi gönderiyoruz
beforeSend: function () {
//Eğer sayfaya veriler yüklenirken bir yükleniyor tarzı uyarı çıkarmak istiyorsanız buraya koldar yazabilirsiniz
//İstemezseniz de beforeSen fonksiyonun komple silin
},
success: function (response) {
console.log(response);
// $("#hafta_goster").html(response) // x.php dosyasından dönen değeri tab sisteminin hafta için olan kısmına yazdırıyoruz
}
})
}
</script>


x.php nin içine şu kodları koyup PHP tarafında postları nasıl alacağınızı görebilirsiniz :) İyi çalışmalar


if (isset($_POST['listele'])) {
print_r($_POST);
}
 

 


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