我要讓喜歡/不象系統,PHP和jQuery/AJAX ..「贊」系統PHP,使用AJAX
這是我在PHP foreach
形式......在這裏,我有自己的ID對每個表單;
<?php foreach ($vid as $var) { ?>
<form class="classform" action="functions/videolike.php" method="post">
<input type="text" name="id" value="<?php echo $var['video_id'];?>">
<button class="submitbuttonclass"type="submit">Like</button>
</form>
<?php } ?>
這是我的Ajax腳本;
<script>
// this is the id of the submit button
$(".submitbuttonclass").click(function() {
$.ajax({
type: 'post',
url: "functions/videolike.php",
data: $(".classform").serialize(), // serializes the form's elements.
success: function(data)
{
alert(data); // show response from the php script.
}
});
return false; // avoid to execute the actual submit of the form.
});
</script>
- 的代碼的工作,但不能正確;
- 當我點擊「喜歡」按鈕工作良好,我cheked的數據庫,caunting,插入,刪除,工作好...
- 但我想使這與AJAX becouse,刷新頁面停止視頻時用戶在觀看視頻時是否點擊了類似按鈕。視頻預加載becouse頁面刷新...
- 我添加我的ajax腳本的工作。但是當我點擊像按鈕時,AJAX發佈到PHP,只有最後一個id在foreach循環中,
問題? 如何使AJAX獲得所有在PHP foreach循環中的id?
這是我的videolike.php如果你想檢查;
<?php
session_start();
if($_POST['id'] && @$_SESSION["userid"]){
require_once "connectdb.php";
$id = $_POST["id"];
$VLcheck = "SELECT count(*) FROM `videolikes` WHERE user_id = ? AND liked_vid_id=?";
$reslike = $conn->prepare($VLcheck);
$reslike->execute(array($_SESSION["userid"],$id));
$VLrow = $reslike->fetchColumn();
echo $VLrow;
if ($VLrow > 0){
$VLcheck = "DELETE FROM `videolikes` WHERE user_id = ? AND liked_vid_id=?";
$reslike = $conn->prepare($VLcheck);
$reslike->execute(array($_SESSION["userid"],$id));
} else {
$curentsess= $_SESSION["userid"];
$INSlike = $conn->prepare("INSERT INTO videolikes(user_id, liked_vid_id)
VALUES('$curentsess','$id')");
$INSlike->execute();
}} else {die;}
?>
嘗試通過改變'.click'聽者停止瀏覽器默認的執行和功能開始這樣的:(」。classform‘)'$在(’。 (){e.preventDefault(); [...其餘函數]});'(也可以使用$(this).serialize()'而不是'$( '.class')。serialize()')我想你錯過了停止默認執行,所以你得到服務器端的結果不是來自'$ .ajax()'函數的結果。另外,你提到一個PHP foreach()循環。但是,在你的例子中沒有。 – Nukeface