Merhaba,
Php de for each döngüsü ile 10 verili bir çıktı alıyorum her çıktıda birer form var yanı sayfa yuklendıgınde 10 farklı form olusuyor her formda 2 buton var ve butonlara bastıgımda en üstteki formda işlem yapıyor butonlarda onclick eventinde bir ajax fonksıyonu var ama ajax fonksiyonu bir forma bağlı ama gelen 10 foırmun onuda aynı form idi ile geliyor yanı formların farklı idlerdeolmasını sağlasam bile bu seferde bunu ajaxa iletemıyorum onclickdeki fonksiyonun içerisine this.form ayzıyorum kabul etmıyor olmuyor.
Aiaiğıya kod parcalarını verıyorum sadece bu döngü ile gelen 10 formunher bırnın ajax fonksıyonlarına farklı sekılde ıletılmeısnı ıstıyorum ama beceremedım bır turlu arastırdım bıulamadım da
Şimdiden Teşekkürler.
Php döngü kısmı burda
<?php
$tweet = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$username."&count=10");
foreach ($tweet as $ayikla)
{
echo'<article class="box is-post">';
echo '<b>'.$ayikla->text.'</b>'; //Tweet
$tweetidsi = $ayikla->id_str;
echo $tweetidsi;
echo'<br><form method="post" action="index.php?islem=fav" ><input name="favid" type="text" class="m-wrap" value="'.$tweetidsi.'" /><input type="button" class="button" onClick="gonderfav(this);" value="10 Favori Ekle"/></form>';
echo'<form method="post" action="index.php?islem=rt" ><input name="rtid" type="text" class="m-wrap" value="'.$tweetidsi.'" /><input type="button" class="button" onClick="gonderrt(this);" value="10 Retweet Ekle"/></form>';
echo'<br><div id="sonuc13"></div></article> ';
}
?>Ajax Fonksıyonlarıda burda
<script type="text/javascript">
function gonder(){
$('#sonuc').slideDown('slow');
$("#sonuc").html('<div id=resim><center>Takipçileriniz Aktarılıyor..<br><img src="includes/img/loading.gif"></center></div>');
$.ajax({
type:'POST',
url:'index.php?islem=kazan',
data:$('#veri-formu').serialize(),
success:function(cevap){
$("#sonuc").html(cevap)
}
})
}
</script>
<script type="text/javascript">
function gonderrt(frm){
$('#sonuc13').slideDown('slow');
$("#sonuc13").html('<div id=resim><center><img src="../includes/img/loading.gif"></center></div>');
$.ajax({
type:'POST',
url: frm.attr( 'action' ),
data:frm.serialize(),
success:function(cevap){
$("#sonuc13").html(cevap)
}
})
}
</script> Çözüm
for içinde kullandığınız tüm id değerlerinin farklı olması lazım örneğin ,
onclick ile verdiğiniz değerin
onClick="gonderrt1(this);"
onClick="gonderrt2(this);"
onClick="gonderrt3(this);"
gibi artması lazım aynı şekilde bu fonksiyonunda içindeki html cevapların farklı idler ile oluşturulması lazım. Forda bir counter ekleyip bir benzersiz belirleyin daha sonra
onClick="gonderrt<?=$benzersiz?>(this);"
Şeklinde for içinde benzersizleştirin.
Öneri :
Bu kodlar çok gereksiz yazılmış. Js fonksiyonunu geliştirirseniz bir div'e id verip içerisindeki değerleri okuyarak 1 js fonksiyonu ile işlem yaptırabilirsiniz