portseven: Ajax Button funktioniert nur 1x

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>';
	?>

  1. Hallo,

    http://test.liscon.bplaced.net/Test/test.php

    da kommt bei mir nur eine leere Seite.

    Gruß
    Jürgen

    1. Tut mir leid für den Fehler<.< Jetzt müsste die Seite vollständig Laden & etwas zu sehen sein.

  2. 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

    --
    Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
    Toller Dampf voraus von Terry Pratchett
    1. Danke, habe jetzt wenigstens verstanden wieso es nicht geht. Ich beherrsche keinerlei Javascript/Ajax Kenntnisse & weiß auch nicht wie ich es einbinden.