2016-03-07 47 views
0

我用jQuery,html和php爲我的頁面創建了一個像按鈕。現在我試圖讀出喜歡的總數。用jquery更新喜歡的總數

當我點擊它通過我的jQuery和PHP並返回總量在我的控制檯。但是在我更新頁面之前,我無法在頁面上看到它。

PHP和HTML

<?php 


$page = new CMS(); 
$gp = $page->getPage(); 


foreach ($gp as $sp) { 
    //var_dump($sp); 

    echo "<div class='pub'>"; 

    echo "<h4 class='pub-headline'>" . $sp['title'] . "</h4>"; 
    echo "<article class='pub_art'>" . $sp['content'] . "</article>"; 
    echo "<p class='pub_created'>" . $sp['created'] . "</p>"; 
    echo "<p class='pub_created_by'>". $sp['writer'] ."</p>"; 

    echo "<button class='show'>Show</button>"; 
    echo "<button class='noshow'>Hide</button>"; 

    echo "<div class='vote_widget'>"; 
    echo "<div class='voting' onclick='vote(" . $sp['id'] . ", 1)'></div>"; 

    echo"<div class='total_likes'>" . $sp['likes'] . "</div>"; 

    echo"</div>"; 

    echo "</div>"; 

} 
?> 

jQuery的

function vote(id, likes) { 


    $.post("classCalling4.php", 
      { id: id, likes: likes }, function(result){ 

       console.log(result) 
       $(".total_likes" + id) .html(result); 
       ; 
    }); 

OOP PHP

public function updateLikes($id, $likes) { 

    $id = mysqli_real_escape_string($this->db, $id); 
    $likes = mysqli_real_escape_string($this->db, $likes); 

    $id = intval($id); 
    $likes = intval($likes); 


    $sql = "UPDATE pages 
    SET likes = likes+1 
    WHERE id = $id "; 

    $result = mysqli_query($this->db, $sql) or die("Fel vid SQL query 1"); // Hit kommer jag 


    $sql2 = "SELECT * from pages WHERE id = $id "; 
    $result2 = mysqli_query($this->db, $sql2) or die ("Fel vid SQL query 2"); 


    $row = mysqli_fetch_array($result2); 
    $tot_likes = $row['likes']; 

    echo $tot_likes; 

} 

回答

1

,因爲你想這在你的jQuery腳本,你應該將ID添加到類名:

$(".total_likes" + id) .html(result); 

所以你的HTML應該是:

echo"<div class='total_likes".$sp['id']."'>" . $sp['likes'] . "</div>"; 

,如果你使用這個類來給風格,你可以用編號代替類:

echo"<div class='total_likes' class='total_likes".$sp['id']."'>".$sp['likes']."</div>"; 

和你的JavaScript應該是:

$("#total_likes" + id) .html(result); 
+0

的確!或者從jquery中刪除「+ id」,如果你只是希望這個類是total_likes –

+0

@MatthewLymer我認爲你的解決方案是無效的,因爲他有很多div總數,它在foreach中 –

+0

Thanks dude!工作了很多 – mackeemackee

1

因爲total_likesforeach循環所以你應該連接id w ith類名使其獨特。 所以,與其

echo"<div class='total_likes'>" . $sp['likes'] . "</div>"; 

做到這一點

echo"<div class='total_likes'".$sp['id'].">" . $sp['likes'] . "</div>";