Doğru Cevap
-
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
Özetle
$(function() { $('.menulistesi').click(function() { $(this).closest('.degisecek_icerik') .load('gosterkayit.php?kayit_id=' + $(this).data('kayit_id')); return false; }); });
10 yıl önce yazılmış -
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') );
10 yıl önce yazılmış -
madpoet
Evet ama a tag'inde data-secim'in başındaki & işareti olmayacak..10 yıl önce yazılmış -
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ık10 yıl önce yazılmış -
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.
10 yıl önce yazılmış -
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>
10 yıl önce yazılmış
-
Cevaplar
Hiç cevap bulunamadı.