v2.5.2
Giriş yap

script içerisine php dizisi yazdırmak

burak001
624 defa görüntülendi

php foreach ile kart listeleme yapıyorum bu kartlarını her birinin altında beğeni butonu
var beğenildiği zaman ajaxla durum ve kartın sırasını gönderiyorum fakat kart sırasını gönderemiyorum

kodlar şöyle

 require_once "connect.php";
require_once "begenfu.php";
$benid = @$_SESSION["id"];
$geziListele = $con->prepare("SELECT * FROM geziler ORDER BY begen DESC");
$geziListele->execute(array());
$geziDondur = $geziListele->fetchAll(PDO::FETCH_ASSOC);
$geziSay = $geziListele->rowCount();
foreach($geziDondur as $geziAnahtar){
    $yazar = $geziAnahtar["id"];
    $yazi_sira = $geziAnahtar["yazi_sira"];
    $yazi_dizi = array($yazi_sira);
?>
<a stlye="text-decoration:none;" href="index.php?islem=yazilarim&id=<?php echo $yazi_sira?>">
<div class="anaCerceve">

<div class="anaResim">
<img src="<?php echo $geziAnahtar["res1"]?>" alt="Resim yüklenemedi">
</div>

<div class="ortaCerceve">

<div class="baslik">
<h2><?php echo $geziAnahtar["baslik"]?><label style="color:#81C14B;font-size:13px;margin-top:-5px;"><?php echo " · ".$geziAnahtar["konum"]?></label></h2>
</div>

<div class="aciklama">
<p><?php echo substr($geziAnahtar["aciklama"],0,255)?></p>
</div>

</div>

<div class="alt">

<div class="begeni">
<?php
$begeniKontrol = $con->prepare("SELECT * FROM begeniler WHERE begenen_id=? AND begenilen_id=?");
$begeniKontrol->execute([$benid,$yazi_sira]);
$begeniSay = $begeniKontrol->rowCount();
?>
<?php if(isset($_SESSION["id"])){?>
<?php if($begeniSay==0){?>
<a class="btn">
<i id="kalp" class="far fa-heart"></i><label  style="font-size:22px;font-weight:200;color:gray;" ><?php echo begenText($geziAnahtar["begen"])?></label>
</a>
<?php }else{?>
<a class="btn">
<i id="kalp" class="fas fa-heart"></i><label  style="font-size:22px;font-weight:200;color:gray;" ><?php echo begenText($geziAnahtar["begen"])?></label>
</a>

<?php }}else{ ?>
<a class="btn">
<i id="kalp" class="far fa-heart"></i><label  style="font-size:22px;font-weight:200;color:gray;" ><?php echo begenText($geziAnahtar["begen"])?></label>
</a>
<?php }?>
<input id="yazi_sira" type="text"style="padding:0;margin:0;display:none;" value="<?php echo $yazi_sira?>">
</div>
<div class="tar_ads">
<label style="color:red;"><?php echo timeConvert($geziAnahtar["tar"])?></label>
<?php 




$yazarEkle = $con->prepare("SELECT * FROM kayit WHERE id = $yazar");
$yazarEkle->execute(array());
$yazarDondur = $yazarEkle->fetchAll(PDO::FETCH_ASSOC);
foreach($yazarDondur as $yazarAnahatar){


?>
<label style="color:blueviolet;"><?php echo $yazarAnahatar["ads"]?></label>



<?php }?>
</div>

</div>

</div>
</a>
<?php } ?>




script kısmı ise şöyle

<script>

$(".btn").click(function(){

var yazi_sira = $("#yazi_sira").val();

let btn = $(this).children('i.fa-heart');

if(btn.hasClass("far")){
var durum = 1;
btn.removeClass("far").addClass("fas");
}else{
var durum = 0;
btn.removeClass("fas").addClass("far");
}
$.ajax({
  url:"pages/begeni.php",
  data:{"durum":durum,"yazi_sira":yazi_sira},
  type:"POST",
  success:function(m){
      alert(m);
  }

});

});
</script>

makifgokce
1352 gün önce

Öncelikle kodlarını

    ```php
        // Buraya
    ```

Bu şekilde girersen düzgün gözükecektir.
Bir sayfada id yi sadece 1 defa kullanmalısın.
sen foreach ile idsi yazi_sira olan birden çok input yazdırıyorsun bu kullanım yanlış.
id her zaman unique olması gerekir.

foreach($geziDondur as $key => $geziAnahtar){
<!-- gizli input için type'ını hidden yapman yeterli style ile uğraşmana gerek yok. -->
<input id="yazi_sira_<?php echo $key ?>" type="hidden" value="<?php echo $yazi_sira?>">
<script>
$(".btn").click(function(){

var yazi_sira = $("#yazi_sira_<?php echo $key ?>").val();
let btn = $(this).children('i.fa-heart');

if(btn.hasClass("far")){
var durum = 1;
btn.removeClass("far").addClass("fas");
}else{
var durum = 0;
btn.removeClass("fas").addClass("far");
}
$.ajax({
  url:"pages/begeni.php",
  data:{"durum":durum,"yazi_sira":yazi_sira},
  type:"POST",
  success:function(m){
      alert(m);
  }

});
});
</script>

bu şekilde yaparsan büyük ihtimal çözülecektir.