Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

döngüde, divlerden İD ile belirli bir div in içeriğini değiştirmek

merhaba

while ile döngü içinde oluşan divlerden, sadece seçtiğimizin içeriğini nasıl değiştireiblirim
.
.
.

while ( sorgu ... )
{ 
<div id="goster" >

<a class="menulistesi" href="javascript:void(0);" rel="<?php echo 'begen' ?>" kayit_id="<?php echo "$kayit_id" ?>"> <?php echo 'begen' ?></a>

<script type="text/javascript">
$('a.menulistesi').click(function(){ 
var deger = $(this).attr('rel'); 
var kayit_id = $(this).attr('kayit_id'); 
ajaxGonder(deger,kayit_id); 
})


function ajaxGonder(x,y){
$.ajax({
type: 'GET', 
url: 'gosterkayit.php', 
data: 'secim='+x+'&kayit_id='+y, 
success: function(gelendeger) { 
$('#goster').html(gelendeger); 
}
});
}
</script>

..
</div>



böyle yapınca diyelim 10 div oluşsun alt alta.
ben 3.divin linkine tıkladım. ve o divin içeriğinin değişmesini istiyorum.
ama sadece en üstteki divin içeriği değişiyor.

şunu denedim


<div align="center"   id="goster"<? echo $kayit_id ?>"


ve


function ajaxGonder(x,y){
$.ajax({
type: 'GET', 
url: 'goster_begensarart.php', 
data: 'secim='+x+'&kayit_id='+y, 
success: function(gelendeger) { 
$('#goster'+kayit_id).html(gelendeger); 
}
});
}
</script>



yine olmadı

şunu denedim

<div id="goster">

<a class="menulistesi" href="javascript:void(0);" rel="<?php echo 'begen' ?>" kayit_id="<?php echo '$kayit_id' ?>"> <?php echo 'begen' ?></a>
...



ve
<script type="text/javascript">
$('a.menulistesi').click(function(){
var deger = $(this).attr('rel');
var kayit_id = $(this).attr('kayit_id');
ajaxGonder(deger,kayit_id);
})


function ajaxGonder(x,y){
$.ajax({
type: 'GET',
url: 'goster_begensarart.php',
data: 'secim='+x+'&kayit_id='+y,
success: function(gelendeger) {
$('#goster'+kayit_id).html(gelendeger);
}
});
}
</script>


en son :


id="goster" class="dot" 

..

$('#goster').html(gelendeger); 

..

$('.dot').html(gelendeger);  


bu seferde bütün divlerin içeriği değişti.

bu sorunu nasıl çözebilirim?
teşekkürler.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • madpoet adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    84 cevap - 1 soru
    1. javascript:void(0) falan yok artık, jQuery kullanmaya başladıysan javascriptleri de unobtrusive yazmanın zamanıdır.
    2. HTML'deki id'ler unique olmalıdır. Yani döngünün içerisinde <div id="goster"> dersen 10 tane goster id'li eleman olur, standart dışı olduğu gibi mantık hatası da oluşur.
    3. Kodunu formatlarsan okumamız daha kolay olur.

    HTML'in şundan ibaret olacak:

    <?php while( sorgu ):?>
    <div class="degisecek_icerik">
        <a class="menulistesi" href="#" data-kayit_id="<?php echo $kayit_id?>">Beğen</a>
    </div>
    <?php endwhile ?>
    


    Javascript:

    // Internet explorer arıza çıkartabiliyor, DOM'un yüklendiğinden emin olalım
    $(function() {
        // Click handler'ı
        $('.menulistesi').click(function() {
            // data-kayit_id'den id'yi çekelim. 
            var kayit_id = $(this).data('kayit_id');        
    
            // Güncelleyeceğimiz div. Değişkeni tanımladıktan sonraki alt level'larda 
            // direkt erişebilirsin. Ancak üst seviyeden erişemezsin. O yüzden burada
            // tanımlarsak ajax success metodu içerisinde kullanabiliriz.
            // $(this) --> tıklanan link. $(this).closest --> Bizim linkin parent
            // elemanlarını tarar, class'ı match edeni bulur
            var parent_div = $(this).closest('.degisecek_icerik');
    
            // Ajax fonksiyonun
            $.ajax({
                type: 'GET',
                url: 'gosterkayit.php',
                data: 'kayit_id=' + kayit_id,
                success: function(response) {
                    parent_div.html(response);
                }
            });
    
            // Ben olsam load'u kullanırım, çok daha kolay:
            // parent_div.load('gosterkayit.php?kayit_id=' + kayit_id);
            
            // Linki takip etmemesi için false döndürelim, javascript:void'e gerek kalmaz
            return false;
        });
    });
    
    • madpoet adlı üyenin fotoğrafı madpoet
      Özetle

      $(function() {
          $('.menulistesi').click(function() {
              $(this).closest('.degisecek_icerik')
                     .load('gosterkayit.php?kayit_id=' + $(this).data('kayit_id'));
              
              return false;
          });
      });
      
      9 yıl önce yazılmış
    • can-inlife adlı üyenin fotoğrafı can-inlife
      teşekkürler üstad
      void(0) bir kaç kişi yardımlarında hep onu kullanmışlardı. benim eserim değil yani,

      peki
      iki değer nasıl gönderiliyor

      hem o anki kayıt id yi, hem de iki linkten hangisine bastığını göndermek istiyorum.
      kayit_id ve secim


      <a class="menulistesi" href="#"  data-kayit_id="<?php echo $kayit_id?>"  &data-secim="<?php echo 'sevdim'?>"   >sevdim</a>
      <a class="menulistesi" href="#"  data-kayit_id="<?php echo $kayit_id?>"  &data-secim="<?php echo 'sevmedim'?>"   >sevmedim</a>
      



      fonksiyonda da

      .load('gosterkayit.php?kayit_id=' + $(this).data('kayit_id') +'&secim=' + $(this).data('secim')    );
      
      9 yıl önce yazılmış
    • madpoet adlı üyenin fotoğrafı madpoet
      Evet ama a tag'inde data-secim'in başındaki & işareti olmayacak..
      9 yıl önce yazılmış
    • can-inlife adlı üyenin fotoğrafı can-inlife
      değişik linkleri incelemiştim çeşitli permitasyonlarını denemiştim, artk bir saat boyunca uğraşıp bir & silmemişim.
      teşekkürler.
      emeğine sağlık
      9 yıl önce yazılmış
    • can-inlife adlı üyenin fotoğrafı can-inlife
      merhaba.

      function kayit_ekle()
      {
      var sc='kelime_id='+document.form_kayitekle.kelime_id.value+'&anlam='+document.form_kayitekle.anlam.value;
      JXP(1, "yenilericin","goster_kayitekle.php", sc); 
      }
      
      </script>
      



      yukarıdaki fonksiyonu kullanarak,


      aşağıdaki kodlarla yeni kayıt eklenip, en dipteki yenilericin alanını ek kayıt gösteriliyor.
      goster_kayitekle.php sayfasına veriler gidior. kaydediliyor. sonra buradaki dive yazdırılıyor.



      while (kayıt oldukça)
      
      <div id="herkayit">
      
      <div id="degisekicerik">
      
      ..
      	<td align="center">
      	<a class="menulistesi" href="#"  data-kayit_id="<?php echo $kayit_id?>"  data-secim="<?php echo 'sevdim'?>"   >sevdim</a>
      	</td>
      	<td align="center">
      	<a class="menulistesi" href="#"  data-kayit_id="<?php echo $kayit_id?>"  data-secim="<?php echo 'sevmedim'?>"   >sevmedim</a>
      	</td>
       
      
      <script type="text/javascript">
      $(function() {
          $('.menulistesi').click(function() {
              $(this).closest('.degisecek_icerik')
                     .load('goster_begensarart.php?kayit_id=' + $(this).data('kayit_id') +'&secim=' + $(this).data('secim')    );
              
              return false;
          });
      });
      </script>
      
      </div>
      </div>
      
      <div id="yenilericin">
      </div>
      
      ..
      <form ..>
      ..
      <td colspan="2" align="right" height="40">
      <a href="#" onClick="javascript:kayit_ekle()" style="border:1px; border-color:#6699FF; border-style:solid;"> kayıt ekle  </a>
      </td>
      ..
      </form>
      
      



      yazmasına yazıyor. ama bu yeni eklenen kayıtta şu kod çalışmıyor
      	<td align="center">
      	<a class="menulistesi" href="#"  data-kayit_id="<?php echo $kayit_id?>"  data-secim="<?php echo 'sevdim'?>"   >sevdim</a>
      	</td>
      	<td align="center">
      	<a class="menulistesi" href="#"  data-kayit_id="<?php echo $kayit_id?>"  data-secim="<?php echo 'sevmedim'?>"   >sevmedim</a>
      	</td>
       
      
      <script type="text/javascript">
      $(function() {
          $('.menulistesi').click(function() {
              $(this).closest('.degisecek_icerik')
                     .load('goster_begensarart.php?kayit_id=' + $(this).data('kayit_id') +'&secim=' + $(this).data('secim')    );
              
              return false;
          });
      });
      </script>
      
      
      
      yani aynı kod başlangıçta çalıyor. ilk sayfada. ama o sayfanın bir bölümüne YİNE AYNI KODLARI içeren bir başka sayfadan veri çekildiğinde, yeni veri üzerinde çalışmıyor.
      
      yardımlarınızı bekliyorum. yapamadım. teşekkürler.
      
      9 yıl önce yazılmış
    • can-inlife adlı üyenin fotoğrafı can-inlife
      kayıt eklenip, alttaki dive (yenileriçin) yeni kaydın yazdırıldığında

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
      


      iki defa gelmiş oluyor. belki bundandır dedim. sildim gene olmadı.


      kayit ekle sayfasını aşağıdaki hale getirdim. belki o yeni kayda etki eder diye. gene nafile

      <div align="center" class="degisecek_icerik1" style="position:absolute; left:620px; top:0px; height:20px; right:0px;   overflow:hidden; font-family:'Courier New', Courier, monospace; font-size:11px; color:#6666CC; background-image:url(images/manset.gif); " >
       
      	<table width="100%"  align="right" style="font-family:'Courier New', Courier, monospace; font-size:11px; color:#6666CC;" cellpadding="0" cellspacing="1">
      	<tr  >
      	
       	
      	<?php // BEGEN BEGENME alaj kodları
        
      	
      	if($kayit_begen==1) echo" <td align='right'> begendin </td>";
      	else if($kayit_sarart==1) echo" <td align='right'> sararttın </td>";
      	else
      	{
      	?>
      	
      	<td align="center">
      	<a class="menulistesi1" href="#"  data-kayit_idd="<?php echo $kayit_id?>"  data-secim="<?php echo 'sevdim'?>"   >sevdim</a>
      	</td>
      	<td align="center">
      	<a class="menulistesi" href="#"  data-kayit_idd="<?php echo $kayit_id?>"  data-secim="<?php echo 'sevmedim'?>"   >sevmedim</a>
      	</td>
       
      
      <script type="text/javascript">
      $(function() {
          $('.menulistesi1').click(function() {
              $(this).closest('.degisecek_icerik1')
                     .load('goster_begensarart.php?kayit_id=' + $(this).data('kayit_idd') +'&secim=' + $(this).data('secim')    );
              
              return false;
          });
      });
      </script>
      
      
      9 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.