2016-03-07 48 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>";