İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Yeni gelen veriyi renklendirme

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
document.getElementById('d'+tdval).style.backgroundColor="#ececec";

Böyle birşey size yol göstermiş olabilir mi acaba?
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Bir kaç hata var o kodda.
Bir tagname de N büyük harf olacak, bir de for döngüsünde $ var, php den kalma alışkanlık. Çalışan demosunu şuraya yükledim

http://www.v8php.com/test.html

Kaynaktan bakabilirsin
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
document.getElementById('d'+tdval).style.backgroundColor="#ececec";

Böyle birşey size yol göstermiş olabilir mi acaba?

Öncelikle js tam profesyonel değilim.O yüzden dediğinizden tam bir şey çıkaramadım.Benim bu değerle yapıtığım query sayfasında 'd'+tdval id tagı seç bu kullanarak if içinde değişiklik yaptım ama bir sonuç alamadım.
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
Bir kaç hata var o kodda.
Bir tagname de N büyük harf olacak, bir de for döngüsünde $ var, php den kalma alışkanlık. Çalışan demosunu şuraya yükledim

http://www.v8php.com/test.html

Kaynaktan bakabilirsin

Bu son gönderdiğin çalıştı şimdi düzenlemeleri yapıp bilgi veririm.
Yanlız bu table sayfasındaki tr leri uyarı veriyor./query sayfası değil.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Anlamadım o dediğini. Aynı tarz döngüyü ajax çağrısı sonunda da yapıp bu sefer mevcut innerHTML'yi degerler deki ile karşılaştırman gerekiyor.
Benzer şekilde ajax sonrası alert ile mevcudu ekrana bastırabilirsin test etmek için.
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
Anlamadım o dediğini. Aynı tarz döngüyü ajax çağrısı sonunda da yapıp bu sefer mevcut innerHTML'yi degerler deki ile karşılaştırman gerekiyor.
Benzer şekilde ajax sonrası alert ile mevcudu ekrana bastırabilirsin test etmek için.

Tamamdır sorun çözüldü. :D

Angelo ikinici for döngüsünede $ koymuşsun ondan çalışmıyormuş şimdi gördüm bende :)

Gerçekten çok saol angelo sen olmasan biraz zor çözerdim bu sorunu:)

gene benim son bir sorum olucak :)
tabloya yeni veri geldiğinde ekliyor ancak uyarı vermiyor.
HTML:
	if (tdid.indexOf('d') != '-1') {
				var tdval = tds[i].innerHTML;
				
					if (tdval != degerler[tdid]) {
					alert(tdid+' degisti');
					}

burada belirtilmişsin ama bu tür bir uyarı almadım.Birde içeriğe son eklenen değişken hangisi oluyor henüz tam çözemedim.Yeni gelen verinin arkaplanını değiştirmek için $(?).css(background ...) yazmam yeterli olur sanırım.
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
HTML:
<script tyle="text/javascript">
 $(document).ready(function(){
setInterval(function () { $.ajax({
type : "GET",
url : 'query',
dataType : "html",
success: function(data) {

		/* tum tdleri dondur */
		var tds = document.getElementsByTagName('tr');
		var len = parseInt(tds.length) - 1;
		var degerler = [];
		
			for (i=0; i<=len; i++) {
			var tdid = tds[i].id;
			
				if (tdid.indexOf('d') != '-1') {
				/* id'sinde dongu geciyor, aradigimiz tdlerden biri bu, degeri kaydet */
				var tdval = tds[i].innerHTML;				
				degerler[tdid] = tdval;
				}
				
			}
			
		

			
	var d = data.length;
	var b = $('#list-table').length;
	if ( d > b ) {
	$('#list-table').html(data);
			
			/* yeniden dondur degisiklik var mi kontrol et */
			for (i=0; i<=len; i++) {
			var tdid = tds[i].id;
			
				if (tdid.indexOf('d') != '-1') {
				var tdval = tds[i].innerHTML;
				
					if (tdval != degerler[tdid]) {
					alert(tdid+' degisti');
					}
				}
				
			}
	}

}


});
}, 1000);


});
</script>
Angelo uyarı vermem sorunu çözdüm id ler uyuşmuyormuş.Bunun dışında uyar bir pürüz çıktı bahsettiğim note uygulaması çalışmıyor o yüzden table içindeki <tbody > taglarına id verip kodu ona göre düzenlicem umarım daha fazla sorun olmaz.:)
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Anlamadım tam ama id uyuşmaması niye, sen rowlarin idlerini de mi değiştiriyorsun
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
Az önceki hatalı kodlarda deneme yapmak için değiştirmiştim şuan düzeltim ama nedense tablo üzerine yaptığım diğer js ler çalışmıyor şuan onlara bakıyorum eğer bilgisayar başında uyumazsam birazdan bilgi veririm.:)
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
Daha önceki sorun burada devam ediyor taglar her saniye başı işlem yapıldığından diğer js ler çalışmaya vakit bulamıyor.
süre uzatında diğer js ler çalıştı.Tabi sürenin sonunda yine başa döndü.Yaptığım uygulama açıklama yazma gibi süre gerektirmeyen bir iş olsa sorun değil ama açıklama için slidedown ile açtığım alan açık kalması gerek.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Zamanla ne alakasi var ki :) Bir yerde hata vardir. Firefox error manager dan JS error lerini izle.
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
HTML:
		var tds = document.getElementsByTagName('tbody');
		var len = parseInt(tds.length) - 1;
		var degerler = [];
		
			for (i=0; i<=len; i++) {
			var tdid = tds[i].id;
			
				if (tdid.indexOf('d') != '-1') {
				/* id'sinde dongu geciyor, aradigimiz tdlerden biri bu, degeri kaydet */
				var tdval = tds[i].innerHTML;				
				degerler[tdid] = tdval;
				}
				
			}

Angelo bence biz yanlış yol üzerindeyiz çünkü "var d = data.length; var b = $('#list).length;" değişkenleri içlerindeki veriler aynı olsada eşit olamazlar çünkü birinde birinde sadece tagları sayıyoruz ve onları alıyoruz.Diğer #list in içinde tüm tablo var.Yani list# her şekilde büyük biliyorum senide çok yordum ama sanırım başladığımız yere döndük.
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
Zamanla ne alakasi var ki :) Bir yerde hata vardir. Firefox error manager dan JS error lerini izle.

Hata konsolu css hataları dışında hata vermiyor.Zamanla alakası yok zaten işlem yaptığımız tagların içindeki taglara tıklandığında başka js ler çalışıyor.Devam bir güncelleme lazı olmadığından bunlar çalışmıyor.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Cok basit bir yontem ama sen ne yapiyorsun tabi bilemiyorum burdan.

<tr id="d-1'> </tr> <- buranin arasindaki icerigi aliyorsun.

sonra tabloyu ajax ile update ettiginde

<tr id="d-1'> </tr> <- gene buna bakiyorsun.

ayni mi kontrol ediyorsun.

Eger tabloyu update ettikten sonra yapiyi degistiriyorsan bilemeyecegim tabi.

Ajax i update ettikten sonra da alert ile tdval leri bastir ekrana. Bu tarz kontrol islemleri yapmazsan hatayi nasil anlayacaksin ki. Usenmeyip kodu yazacagim simdi ha.
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
Cok basit bir yontem ama sen ne yapiyorsun tabi bilemiyorum burdan.

<tr id="d-1'> </tr> <- buranin arasindaki icerigi aliyorsun.

sonra tabloyu ajax ile update ettiginde

<tr id="d-1'> </tr> <- gene buna bakiyorsun.

ayni mi kontrol ediyorsun.

Eger tabloyu update ettikten sonra yapiyi degistiriyorsan bilemeyecegim tabi.

Ajax i update ettikten sonra da alert ile tdval leri bastir ekrana. Bu tarz kontrol islemleri yapmazsan hatayi nasil anlayacaksin ki. Usenmeyip kodu yazacagim simdi ha.

Angelo konu çok dağıldı toparlıyorum.Sanırım birbirimizi yanlış anlıyoruz.Eski kodda
biz querydeki veriyi çekiyor sonra tagları sayıyor eğer aynıysa devam ediyor aynı değilse yeni veri geldi diye uyarı veriyor ama fonksiyondan her geçişinde $('#bpm-table').html(data); işlemi yapıyor bu her sn de tablonunun yenninden yüklenmesi demek bu malesef iş görmüyor diğer js fonksiyonları çalışmıyor.

Şimdi html kodda değişikliğe gittim.Yeni sayfalar şu şekilde;
tablonun olduğu sayfa:
HTML:
<div id="list-table" >
<table id="list" summary="Meeting Results">
    <thead>
    	<tr>
	    <th scope="col">Date</th>
            <th scope="col">Value</th>
   
        </tr>
    </thead>
    <tfoot>
    	<tr>
        	<td colspan="6">No more measurement</td>
        </tr>
    </tfoot>
(for döngüsü)
<tbody id="d-x">

	  <tr  >
	  <td >Feb. 11, 2011, 8:34 a.m.  </td>
	  <td >200 </td>
	  
     </tbody>
(döngü bitiş)
</table>
</div>

bu ilk kullanınıcın giriş yapıp girdiği sayfa tablodaki veriler yüklendi.

query sayfası:
HTML:
(for döngüsü)
<tbody id="d-x">

	  <tr  >
	  <td >Feb. 11, 2011, 8:34 a.m.  </td>
	  <td >200 </td>
	  
     </tbody>
(döngü bitiş)


bu iki sayfayı bu şekilde değiştirdim.İzlememiz gereken algoritma iki sayfadaki tbody
taglarını sayıcaz eğer get ile gelen data verisindeki sayı normal tablo sayfasındakinden yüksek olursa id en yüksek olan tagı çekip tablodaki diğer tbody taglarının altına yerleştiricez.

Ben bu şekilde düşündüm.Senin bunun dışında bir fikrin varsa onuda yazalım.
Şuanda data verisindeki tagları saymaya çalışıyorum.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Dediğim gibi tablo yapısını değiştiriyorsan, olmaz. ama benim verdiğim kod aşağıdaki örnekte çalışıyor.

http://www.v8php.com/test.php

3 saniyede bir, 1 numaralı tr deki saati güncel saatle yeniliyor, ikinci satıra dokunmuyor. Değişiklik yapılan satıra animasyon koydum. Ajax querysinin kodu da aşağıdaki dosyada.

http://www.v8php.com/api.txt
 

leonin

0
İyinet Üyesi
Katılım
9 Ağustos 2010
Mesajlar
92
Reaction score
1
HTML:
		if (tdid.indexOf('d') != '-1') {
				/* id'sinde dongu geciyor, aradigimiz tdlerden biri bu, degeri kaydet */
				var tdval = tds[i].innerHTML;				
				degerler[tdid] = tdval;
				}
				
			}
			
				{$('#bpm-table').html(data)}

Burada hata var sanırım "{$('#bpm-table').html(data)}" bu satır çalışmıyor.

http://www.v8php.com/test.php sayfası açıkken api.php deki echo ya 3. bir tr tagı yazıp uyarı veriyormu deneyebilirmisin.
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Hala çözüm bulunamadı dimi :(

leonin canlı sonuç sitelerini inceleseniz onlarda sizin yapmak istediğinize benzer uygulamalar olabilir. Hiç baktınız mı.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst