フィードの各投稿に個別のfeedLikes.php
を読み込むフィードページがあります。現在、私は各投稿が好きで、Ajaxを使って好きなものを更新しています。ただし、likeが更新されるたびに、フィードの先頭に戻ります。以下はfeedLikes.php
です:データID付きAjax成功関数
if (isset($_POST['feedID']))
{
$feedID = ($_POST['feedID']);
$findHasUserLiked = $pdo->prepare('SELECT username FROM feedLikes WHERE feedID =? and username=?');
//execute query and variables
$findHasUserLiked->execute([$feedID, $username]);
if ($findHasUserLiked->rowCount() > 0)
{
$hasUserLiked = $findHasUserLiked->fetchColumn();
echo<<<_END
<form action="feedLikes.php" id="unlikePostForm$feedID" method="post">
<button type="submit" class="unLikeButton"></button>
<input type="hidden" name="feedIDForUnlike" class="feedIDForUnlike$feedID" value="$feedID">
</form>
_END;
?>
<script type="text/javascript">
$(document).ready(function()
{
$('#unlikePostForm<?php echo $feedID ?>').on('submit', function (e) {
e.preventDefault();
var feedIDUnlike = $(".feedIDForUnlike<?php echo $feedID ?>").val();
$.ajax({
url: "feedLikesClicked.php",
cache: false,
type: "POST",
data: {feedIDUnlike: feedIDUnlike},
dataType: "html",
success: function(html){
location.reload();
}
});
});
});
</script>
<?php
}
else
{
echo<<<_END
<form action="feedLikes.php" id="likePostForm$feedID" method="post">
<button type="submit" class="likeButton"></button>
<input type="hidden" name="feedIDForLike" class="feedIDForLike$feedID" value="$feedID">
</form>
_END;
?>
<script type="text/javascript">
$(document).ready(function()
{
$('#likePostForm<?php echo $feedID ?>').on('submit', function (e) {
e.preventDefault();
var feedIDLike = $(".feedIDForLike<?php echo $feedID ?>").val();
$.ajax({
url: "feedLikesClicked.php",
cache: false,
type: "POST",
data: {feedIDLike: feedIDLike},
dataType: "html",
success: function(html){
location.reload();
}
});
});
});
</script>
<?php
}
$likesNumber = $pdo->prepare('SELECT count(*) FROM feedLikes WHERE feedID =?');
//execute query and variables
$likesNumber->execute([$feedID]);
$numberOfLikes = $likesNumber->fetchColumn();
print'
<div class=numberOfLikes data-id="'.$feedID .'">
<p>'. $numberOfLikes .'</p>
</div>';
}
私はlocation.reload()
は実際にすべてのfeedLikes.php
ページ、私が気に入っているだけではなくつのポストをリロードしているため、これは承知しています。しかし、私は1つのポストを更新し、フィードの先頭に戻さないためにどのような成功関数を使用する必要があるのか分かりません。
私はそうのようなdivの中にfeedLikes.php
のすべてを置く試してみました:この行を使用して、AJAX成功に
<div class=allLikesPage data-id="'.$feedID .'">
、その後:
$('.allLikesPage[data-id='"+ feedID +"']').load(document.URL + ' .allLikesPage[data-id='"+ feedID +"']');
しかしちょうどすべてを削除しないこと更新。私は他のものの中でもデータIDなしで同じことを試みました。
あなたが気に入った後に好きなものを計算し、そのフィードだけをリロードして更新したくない場合は、フィードに表示されているお気に入りを上書きする必要があります。 1つのインデックスのようにして、別のものにtrueまたはfalseを入れてから、その配列でjson_encodeを使用して読み込み機能を使用すると、$ .parseJsonをparsedataに使用し、data.success、data.likes –
wowのように使用します。私は本当に感謝しています。ありがとうございましたが、いくつかのコードでこれを答えとして書くことができます。私はそれにすべて非常に新しいと$ .parseJsonなどを使用して行く方法を確信していない。 – crapAtCode
私は私の席に戻ったときにちょうどいくつかの時間を与える、私はなります –