[]

Jquery - Satır ve Sütunlardaki Verileri tanımlama

Tablomdaki satırımın (tr) bir id'si var ve ben bunu jquery ile alıp kontrol.php'me göndermeliyim.
Tablomdaki sütunumun da bir id'si var ve ben bunu da jquery ile alıp kontrol.php'me göndermeliyim.

Ancak;
(kodu site üstünde rahat görmek isterseniz: codeupload.com)
$(function(){
$('.den1 table tr').click(function(){
var nane = $(this).data('id');
var nane2 = $("td", this).data('id');
var degerler = "nane="+nane+"&nane2="+nane2;
$.ajax({
type: "POST",
url: "tema/standart/deneme.php",
data: degerler,
success: function(sonuc){
if(sonuc == "hata"){
alert("Yorum eklenirken hata oluştu.");
}else{
$("#deneme").prepend(sonuc);
}
}
});
});
});

Böyle yaptığımda sütunum hep aynı değeri alıyor (1). Yani hangi sütunun hizasına tıklarsam tıklayayım 1 değerini alıyor.

Neticede ben bir hücreye tıkladığımda hem bir sütun hem bir satır ile denk geliyorum ve her ikisinin de sahip oldukları id'leri gönderebilmemin bir yolu olmalı. sabah 7.30'dan beri bununla uğraşıyorum, ister inanın ister inanmayın. Dönüp dolaşıp aynı olaya dönüyorum ve çıldırmanın eşiğine de geldim.

Basit bir yöntemi olmalı, ama ne, ama nasıl?


edit: jquery'de TR ile TD'nin yerlerini değiştirerek değer çektirdiğimdeyse, bu sefer de Sütunları doğru tanımlıyor ancak satırları yanlış tanımlıyor.

 
tablonu buraya yazarsan daha iyi olur. bir de ben genelde attr('id') kullanırım.

$('table').click(function(){
var nane = $("tr",this).attr('id');
var nane2 = $("tr td", this).attr('id');
var degerler = "nane="+nane+"&nane2="+nane2;
alert(degerler);
});
  • serafettinn  (07.02.12 20:42:23 ~ 20:46:23) 
bence tr'lere click vermek yerine td'lere vermelisin, gerçi html'ini görmeden tam olarak ne yapmak istediğini bilemeyiz ama anladığım kadarıyla her bir hücreye tıklandığında olayını yakalamak istiyorsun.

jsfiddle.net
  • ocanal  (07.02.12 20:55:40 ~ 20:58:48) 
arkadaşlar kodumu da şöyle veriyim: codeupload.com

bu benim tablo kodum, ajax sonucunu bastırdığım kod da var ama o pek gerekmez diye koymadım.
  • tchuck  (07.02.12 20:59:13) 
peki bir satırdaki hangi sütunun data-id'sini nane2 olarak göndermek istiyorsun?

yani verdiğin koda göre sen her bir maç(satır) için kodun çalışmasını istiyorsun ancak nane2'nin ne içermesini bekliyorsun.

şimdi şöyle söyleyeyim,

var nane2 = $("td", this).data('id');

bu kodu kullandığın zaman ilk td'nin data-id'sini sana getirir, her satırdaki ilk td'nin data-id'si "1" olduğundan sana hep "1" gelmesi gayet normal yani.

yapmaya çalıştığın şeyi tam olarak anlamadım ama istedigin şey şöyle bir şey olsa gerek,

dl.dropbox.com

anlamadığım şey şu, benim verdiğim link'teki gibi olsun listen mesela,

ilk maçta galatasaray'ın üstüne tıklayınca farklı bir nane2, fenerbahçe'nin üstüne tıklayınca farklı bir nane2 gidecek ve diğer sütunlarda da. yani bunun amacını anlamadım.
  • ocanal  (07.02.12 21:43:46 ~ 21:46:45) 
kanka yapmak istediğimi olabildiğince özet geçeyim. biraz karışabilir, karışırsa uyar, daha düzgün anlatmaya çalışayım.

şimdi, elimde tablom var. tablomun sabit bir sütun sayısı, sabit olmayan ve yüzlerle ifade edilen satır sayısı var.

her bir sütun, farklı bir işlemi temsil ediyor. örneğin, sekizinci sütuna tıklandığında, ajax'ın kontrol php'si mysql_query("select * from takimlar where takim='$takim' and gol>20") gibi bir işlem yapacak, 9. sütuna tıklandığındaysa mysql_query("select * from takimlar where takim='$takim' and yedigi>20") gibi bir işlem yapacak.

bu yüzden, sütunlara data-id='1' data-id='2' gibi isimler vermem gerkiyor. bunların a ya da b olması da farketmez. önemli olan kontrol php'sinde, if($id = a) ise bu işlem elseif($id = b) ise bu işlem diye belirtebilmek.

neyse. satırlar ise, yukarıdaki işlemlerdeki $takim verisini almamı sağlıyor.

her satırın 3. 4. sütununda takım ismi yer alıyor.

dolayısıyla, ben 8. sütunun, 3. satırına tıkladığımda istediğim veritabanı işlemini yapıyor ve bu işlemdeki değişkenleri, 3. satırdaki takım isimlerine göre alıyor.

yani, direk hücreye yönelik işlem yapmam gerekiyor. koordinat sistemi gibi düşün.

bu arada senin gibi de denedim, data-id yerine direk id verdim ancak undifined hatası aldım. sebebini de bilmiyorum.

farklı bir yöntem geliyorsa söylediğimi yaptırmak için, her şeye açığım ben.
  • tchuck  (07.02.12 21:53:17) 
bu arada son verdiğin linktekine yeni bakıyorum.

jsfiddle'da yaptığını denemiştim ama becerememiştim.


edit: sanırım son verdiğin şekilde işe yaradı. anladığım kadarıyla hatam şuydu: tr'nin data-id'si 1'den 100'e kadar gidiyordu.
td'nin data-id'sini de 1'den 10'a kadar götürüyordum. sayılar çakıştığı için undefined hatası verdi. td'nin data-id'lerini a'dan z'ye kadar götürünce sorun ortadak kalktı gibi. deniyorum hemen tamamını.

çok teşekkür ettim bu arada, uğraşmışsin. gerçekten çok teşekkürler.
  • tchuck  (07.02.12 21:54:29 ~ 21:57:23) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.