Ajax Button funktioniert nur 1x
portseven
- php
Tag,
wenn ich ein Button klicke, und meine Kommentare anzeigen möchte zeigt er es auch an aber nur beim ersten Button. Alle unteren Button haben irgendwie keine Funktion.
http://test.liscon.bplaced.net/Test/test.php
Könnt es ja mal testen & auf show more Comments klicken.
Da ich meine Kommentare auslesen möchte, ohne das die Seite sich neu Ladet, bin ich auf das hier gestoßen:
<script>
//jQuery code here!
$(document).ready(function() {
var commentCount = 2;
$("#buttons").click(function() {
commentCount = commentCount + 2;
$("#comments").load("load-comments.php", {
commentNewCount: commentCount
});
});
});
</script>
?php
$stmt = $pdo->prepare("SELECT
*
FROM u_post
LEFT JOIN user
ON u_post.u_id = user.id
ORDER BY date DESC
");
if(!$stmt->execute()) {
print_r($stmt->errorInfo());
}
?>
<?php while($row = $stmt->fetch()) { ?>
<p>Username: <?php echo $row['username'] . '<br>'; ?></p>
<p>Beitrag-Post: <?php echo $row['post'] . '<br><br>'; ?></p>
<div id="comments">
<div class="top">
<?php
$sql = "
SELECT
*
FROM comments
WHERE comments.p_id = 62
LIMIT 2";
$show = $pdo->prepare($sql);
if(!$show->execute()) {
print_r($show->errorInfo());
}
while ($rows = $show->fetch()) {
?> Kommentare: <?php
echo "<p>";
echo $rows['comment'];
echo "<br><br>";
}
?>
</div>
</div>
<button id="buttons" name="btn">Show more comments</button>
<br><br>
<?php } ?>
load_comments.php
<?php
include 'config/connect.php';
$commentNewCount = $_POST['commentNewCount'];
$sql = "
SELECT
u_post.p_id,
comments.k_id,
comments.comment,
comments.p_id
FROM comments
LEFT JOIN u_post
ON comments.p_id = u_post.p_id
WHERE comments.p_id = 62
LIMIT $commentNewCount ";
$show = $pdo->prepare($sql);
if(!$show->execute()) {
print_r($show->errorInfo());
}
echo '<div class="top">';
while ($rows = $show->fetch()) {
echo "<p>";
echo $rows['comment'];
echo "<br>";
echo $rows['message'];
echo "</p>";
}
'</div>';
?>
Hallo,
da kommt bei mir nur eine leere Seite.
Gruß
Jürgen
Tut mir leid für den Fehler<.< Jetzt müsste die Seite vollständig Laden & etwas zu sehen sein.
Hallo
wenn ich ein Button klicke, und meine Kommentare anzeigen möchte zeigt er es auch an aber nur beim ersten Button. Alle unteren Button haben irgendwie keine Funktion.
Warum sollten sie auch. Eine ID hat eindeutig zu sein. Bei dir haben aber alle Buttons die selbe ID. Das selbe gilt für die die einzelnen Kommentare umschließenden Divs, die alle die ID „comments“ haben, wobei die ID „comments“, selbst als Klassenname benutzt, irreführend ist (wenn dann „comment“). Und zu guter Letzt fehlt den Buttons die Typangabe „button“, damit sie per se keinen Request an den Server auslösen, wie es ein Absendebutton und damit auch deine Buttons tut.
Binde den Eventlistener an ein alle Kommentare umschließendes Element. Wird er ausgelöst, kannst du das auslösende Element mit event.target;
ermitteln und dann den Ajax-Request absetzen.
Tschö, Auge
Danke, habe jetzt wenigstens verstanden wieso es nicht geht. Ich beherrsche keinerlei Javascript/Ajax Kenntnisse & weiß auch nicht wie ich es einbinden.