Zo heb ik in de database:
→Een likeID
→Een tijdlijnID (postID)
→Een gebruikersID (om na te kijken of de ingelogde persoon een bepaalde status al geliked heeft)
Het probleem is dat de like buttons niet perfect werken. Wanneer ik op 1 van de buttons klik komt er in de database automatisch te staan:
→tijdlijnID = 1 (de allereerste status wordt dus enkel aangepast, dit is de laatste status in de query omdat ik de nieuwste statussen bovenaan toon)
(mijn fout zit dus bij de "result['tijdlijnID'])
Heeft iemand een idee hoe ik dit zou kunnen oplossen? Bedankt :)
Tijdlijn.php
<?php
//tijdlijn.php
$result = mysqli_query($con,"SELECT * FROM tijdlijn");
$row2 = mysqli_fetch_assoc($result);
$query = mysqli_query($con, "SELECT * FROM tijdlijn INNER JOIN vriendenlijst ON vriendenlijst.user_id='".$_SESSION['gebruikersID']."' AND tijdlijn.gebruikersID = vriendenlijst.friend_id ORDER BY date DESC ");
while( $result = mysqli_fetch_assoc($query) )
{
$querylikes = mysqli_query($con, "SELECT likeID FROM likes WHERE tijdlijnID= '".$result['tijdlijnID']."'");
$aantallikes = mysqli_num_rows($querylikes);
$queryimage = mysqli_query($con, "SELECT * FROM likes WHERE tijdlijnID= '".$result['tijdlijnID']."'");
$row2 = mysqli_fetch_assoc($queryimage);
//STATUS
echo $result['status']
echo "<br>";
if ($row2['gebruikersID']== $_SESSION['gebruikersID'])
{
//afbeelding = like.jpg
echo
"<input type='image' src='like.jpg' name='saveForm' class='btTxt submit' style='width:30px;height:30px' id='".$result['tijdlijnID']."' onclick='mijnFunctie();likeBijtellen()'/>
<h13><div id='aantallikes'>".$aantallikes."</div></h13>"
}
else
{
//afbeelding = unlike.jpg
echo
"<input type='image' src='unlike.jpg' name='saveForm' class='btTxt submit' style='width:30px;height:30px' id='".$result['tijdlijnID']."' onclick='mijnFunctie();likeBijtellen()'/>
<h13><div id='aantallikes'>".$aantallikes."</div></h13>"
}
//afbeelding veranderen naar like.jpg of unlike.jpg na de klik
echo '<script language="javascript">
function mijnFunctie(){
if(document.getElementById("'.$result['tijdlijnID'].'").getAttribute("src") == "like.jpg")
{
changeImage1()
}
else
{
changeImage2()
}
}
function changeImage1() {
if (document.getElementById("'.$result['tijdlijnID'].'").src == "unlike.jpg")
{
document.getElementById("'.$result['tijdlijnID'].'").src = "like.jpg";
}
else
{
document.getElementById("'.$result['tijdlijnID'].'").src = "unlike.jpg";
}
}
</script>
<script language="javascript">
function changeImage2() {
if (document.getElementById("'.$result['tijdlijnID'].'").src == "like.jpg")
{
document.getElementById("'.$result['tijdlijnID'].'").src = "unlike.jpg";
}
else
{
document.getElementById("'.$result['tijdlijnID'].'").src = "like.jpg";
}
}
</script>';
echo '<script>
function likeBijtellen()
{
if(document.getElementById("'.$result['tijdlijnID'].'").getAttribute("src") == "like.jpg")
{';
$aantallikes = $aantallikes +1;
$like = 1;
echo 'var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("aantallikes='.$aantallikes.' & geliked='.$like.' & tijdlijnid='.$result['tijdlijnID'].'");
}
else
{';
$aantallikes = $aantallikes -1;
$like = 0;
echo 'var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("aantallikes='.$aantallikes.' & geliked='.$like.' & tijdlijnid='.$result['tijdlijnID'].'");
}
}
</script>';
}
?>
Likeaanpassing.php
<?php
//Likeaanpassing.php
include 'connectie.php';
session_start();
$gebruikersID = $_SESSION['gebruikersID']; //gebruikersID van de ingelogde persoon
$geliked = $_POST['geliked']; // 1 of 0
$tijdlijnID = $_POST['tijdlijnid']; // status-id
if ($geliked == 1)
{
mysqli_query($con, "INSERT INTO likes (gebruikersID, tijdlijnID) VALUES ('$gebruikersID', '$tijdlijnID')");
}
else if ($geliked == 0)
{
mysqli_query($con, "DELETE FROM likes WHERE tijdlijnID = '".$tijdlijnID."' AND gebruikersID = '".$gebruikersID."'");
}
//aantal likes opnieuw nakijken
$querylikes = mysqli_query($con, "SELECT likeID FROM likes WHERE tijdlijnID= '".$tijdlijnID."'");
$aantallikes = mysqli_num_rows($querylikes);
//aanpassen aantal likes
echo $aantallikes;
?>
Ik wist niet goed waar ik dit bericht op het forum moest plaatsten (javascript(ajax) of php) omdat ik van beiden gebruik gemaakt heb.