• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Div aktualisiert nicht korrekt

EvilBen

New member
Hi ho und sorry für den doofen Titel,

also ich habe mal wieder ein kleines Problem, und finde einfach den Fehler nicht. Denke es liegt dabei am JS. Folgendes soll passieren:
Kommentarfunktion, wie man sie von Facebook, Twitter und co kennt. Beim Absenden, soll das Textfeld geleert werden, und die Div, die die Kommentare enthält, soll aktualisiert werden. Es funktioniert auch alles, nur eben das aktualisieren nicht so richtig. Nachdem absenden per Enter, wird in die DB geschrieben, und alles ist gut, nur eben die Div wird nicht richtig angezeigt, woran das liegt, weiß ich leider nicht. Also hier mal die entsprechenden Code Schnipsel:

index.php:
Code:
$sql = "SELECT * FROM social_timeline ORDER BY timeline_date DESC";
$result = $db->query($sql);
$lastfoto = 0;
while($row = $result->fetch_assoc()){

if($row['timeline_type'] == "Foto"){
	
	if($row['timeline_foto'] != $lastfoto){
	$lastfoto = $row['timeline_foto'];
	?>
    
    <div class="col-xs-12 col-md-6 col-lg-4 item">
                <div class="timeline-block">
                  <div class="panel panel-default">

                    <div class="panel-heading">
                      <div class="media">
                        <div class="media-left">
                          <a href="">
                            <img src="<?php echo get_img_by_id($row['timeline_uid'], '50'); ?>" class="media-object">
                          </a>
                        </div>
                        <div class="media-body">
                          <a href="#" class="pull-right text-muted"><i class="icon-reply-all-fill fa fa-2x "></i></a>

                          <a href=""><?php echo get_name_by_id($row['timeline_uid']); ?></a>

                          <span><?php echo datum_formatiert($row['timeline_date']); ?></span>
                        </div>
                      </div>
                    </div>

                    <div class="panel-body">
                      <!--<p>Late Night Show Photos</p> -->
                      <div class="timeline-added-images">
                      <?php
					  			$tlfoto = "SELECT * FROM social_timeline WHERE timeline_type = 'Foto' AND timeline_foto = '".$row['timeline_foto']."'";
								$tlresult = $db->query($tlfoto);
								
								while($tlfoto = $tlresult->fetch_assoc()){
									$fotoid = $tlfoto['timeline_foto'];
								echo  "<a class=\"example-image-link\" href=\"usr_timeline_img/".$tlfoto['timeline_text']."\" data-lightbox=\"".$tlfoto['timeline_foto']."\"><img class=\"example-image\" src=\"usr_timeline_img/thumbnails/".$tlfoto['timeline_text']."\" width=\"80\" alt=\"photo\" /></a>";
	
								}
                        ?>
                             

                      </div>
                    </div>
                    
                    <div id="kommentare_<?php echo $fotoid; ?>">
                    <?php include "timeline_comments_comment.php"; ?>
                    </div>
                   
                  </div>
                </div>
              </div>
}

Timeline_comments_comment.php

Code:
                   <?php
					if(isset($_GET['sended'])){
						$sqlid = $_GET['id'];
						include "includes/_db.php";
					}else{
						$sqlid = $fotoid;
					}
					$comment = "SELECT * FROM social_timeline_comments WHERE comment_postid = '".$sqlid."' ORDER BY comment_date DESC";
					$commentresult = $db->query($comment);
					$anzahlcomments = $commentresult->num_rows;
					
					
					?>
                    <div class="view-all-comments">
                      <a href="#">
                        <i class="fa fa-comments-o"></i> Zeige alle
                      </a>
                      <span><?php echo $anzahlcomments; ?> Kommentare</span>

                    </div>
                    <ul class="comments">

<?php
					
					while($comment = $commentresult->fetch_assoc()){
						?>
                      <li class="media">
                        <div class="media-left">
                          <a href="">
                            <img src="<?php echo get_img_by_id($comment['comment_abs'],'50'); ?>" class="media-object">
                          </a>
                        </div>
                        <div class="media-body">
                          <div class="pull-right dropdown" data-show-hover="li">
                           <?php
								//if($row['timeline_uid'] == $_COOKIE['ID']){
									
									?>
                            <a href="#" data-toggle="dropdown" class="toggle-button">
                              <i class="fa fa-pencil"></i>
                            </a>
                          
                            <ul class="dropdown-menu" role="menu">
                              <li><a href="#">Edit</a></li>
                              <li><a href="#" onclick="return deletecommentar(<?php echo $comment['comment_id']; ?>);">Delete</a></li>
                            </ul>
                            <?php //} ?>
                          </div>
                          <a href="" class="comment-author pull-left"><?php echo get_vorname_by_id($comment['comment_abs']); ?></a>
                          <span><?php echo $comment['comment_text']; ?></span>
                          <div class="comment-date"><?php echo datum_formatiert($comment['comment_date']); ?></div>
                        </div>
                      </li>
                    
                      
                      
                      <?php }* ?>
					  
                         <li class="comment-form">
                        <div class="input-group">

                          <span class="input-group-btn">
                   <a href="" class="btn btn-default"><i class="fa fa-photo"></i></a>
                </span>
							<form name="writecomment" action="" onSubmit="writeit(<?php echo $sqlid; ?>); return false;">
                          <input type="text" name="comment_<?php echo $sqlid; ?>" id="comment_<?php echo $sqlid; ?>" class="form-control" />
                          <input type="hidden" value="Foto" name="type" id="type"></form>
                        

                        </div>
                      </li> 
                    </ul>

und die entsprechenden Funktionen am Ende der index.php

Code:
function writeit(id){
	
	$.get('timeline_comment_write.php?id='+id+'&commi='+document.getElementById('comment_'+id).value+'&type='+document.getElementById('type').value, function(){ 
	 
		$('#kommentare_'+id).load('timeline_comments_comment.php?sended=true&id='+id);
	document.getElementById('comment_'+id).value = "";	

	
	});
}

...

hoffe ihr findet den Fehler. Ach und seht es mir bitte nach, wenn ich das ganze mal wieder zu kompliziert gemacht habe!!!
 
hätte man da nicht was kleineres basteln können? mal nur zum js teil, der ist ja noch überschaubar
* $('#kommentare_'+id) existiert?
* timeline_comments_comment.php?sended=true&id='+id liefert auch was es soll?
* 2 requests um das was du sendest wieder zu empfangen?
wenn 1 und 2 mit ja beantwortet werden sollte alles gehen
 
ne tut er nicht

Verstehe das ja selber nicht
Deine Bedingungen oben sind alle erfüllt

ich vermute mal, dass es am "nachladen" liegt. denn wenn ich die Seite neu aktualisiere, wird der neue Kommentar angezeigt.
 
Zuletzt bearbeitet:
Also ich denke es liegt an php -.- aber warum ?
die Konsole is nicht leer.
hingegen die timeline_comments_comment.php scheint ausgabefehler zu haben ?!
 
Hallo Leute, ich habe das Problem lösen können. Lag an PHP, nun habe ich ein ganz anderes Problem. Ich glaub irgendjemand weiter oben hatte es schon einmal bemängelt.

Diese verschachtelte Datei Struktur ist mir auch zu doof. Irgendwo ein </div> zu viel. und schon passt die ganze Seiten Struktur nicht mehr und das nervt.
Meine Frage nun, besteht die Möglichkeit, anstatt eine Div mit einer eindeutigen Id via $('#div').load() mit einer PHP Datei zu füllen, einfach auch den vorgegebenen Inhalt zu aktualisieren ? Dann müsste ich ja nicht diese verschachtelten Dateien haben?!

Also als Beispiel:

Code:
<div id="test">
<?php

$sql = "SELECT .....";
echo $sql;

//usw...

?>
</div>

so dass halt das was in der DIV steht, immer wieder neu generiert wird ?!
 
Meine Frage nun, besteht die Möglichkeit, anstatt eine Div mit einer eindeutigen Id via $('#div').load() mit einer PHP Datei zu füllen, einfach auch den vorgegebenen Inhalt zu aktualisieren ?
???

Dann müsste ich ja nicht diese verschachtelten Dateien haben?!
wofür musst du die haben? um das div initial vorzubelegen? würde sich dann nicht ein include des php-files anbieten welches du später auch per ajax lädst?

so dass halt das was in der DIV steht, immer wieder neu generiert wird ?!
???
 
Zurück
Oben