Announcement

Collapse
No announcement yet.

$.each falschrum in diversen Browsern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • $.each falschrum in diversen Browsern

    Hi,

    erst mal ein frohes neues Jahr
    Und nun zu meinem Problem:
    Ich rufe mit eine onclick eine Funtktion auf, die einen Post an eine php Datei sendet. Die php Datei ruft Daten aus ner MySQL DB an und gibt diese per json an die JS datei zurück. Hierbei ist vielleicht noch zu beachten, dass ich in der DB Abfrage ein DESC mit nem LIMIT habe. Das heißt es sollen nur bestimmt Einträge mit dem neusten zuerst zurückgegeben werden. Diese Daten werden dann mit der Funktion $.each verarbeitet. Der Firefox und der Safari machen das auch ganz brav, aber der Internet Explorer, Chrome und Opera sortieren die Einträge falsch herum also mit dem ältesten zuerst. Ich kann mir da leider keinen Rheim draus machen. Hat hier vielleicht jemand eine Idee?

    Anbei noch meine php und js Funktionen:

    js:
    Code:
    function show_all_comments(){
    $("#show_all_comments").css("display", "none");
    	$("#all_comments_loading").css("display", "inline");
    	var count = $("#comments_count").val();
    	
    	$.post("function.php", {action: "show_all_sneak_comments", count: count}, function(data){
    		$("#all_comments_loading").css("display", "none");
    		
    		$.each(data, function(index, value){
    		
    			$("#sneak_comments").append(
    				"<div style=\"background-color: #0088ff; margin: 20px auto 0 auto; width: 490px; text-align: left; padding: 5px; border: 1px solid #000000;\">"+value.loginid+" - "+value.datum+"</div>"+
    				"<div style=\"background-color: #EAF1F9; margin: 0 auto 20px auto; width: 490px; text-align: left; padding: 5px; border: 1px solid #000000;\">"+
    				 value.text+"</div>"
    			);
    		});
    	}, "json");
    }
    php:
    PHP Code:
    function show_all_comments()
        {
            
    $sneakid $_SESSION['sneak']['id'];
            
    $count mysql_real_escape_string(htmlspecialchars($_POST['count']));
            
    mysql_query("select * from comments_history where sneakid = '$sneakid';");
            
    $total mysql_affected_rows();
            
            
    $query mysql_query("select * from comments_history where sneakid='$sneakid' order by id desc limit ".$count.", ".$total.";");
            while(
    $row mysql_fetch_assoc($query))
            {
                
    $row_loginid mysql_fetch_assoc(mysql_query("select login.name as 'login' from login where id='".$row['loginid']."';"));
                
                
    $result[$row['id']] = array(
                    
    "id" => $row['id'],
                    
    "datum" => $row['datum'],
                    
    "text" => stripcslashes(nl2br($row['text'])),
                    
    "loginid" => $row_loginid['login']
                );
            }
            echo 
    json_encode($result);
        } 
    Wär echt super, wenn mir jemand helfen könnte

    Liebe Grüße

    Namir
    Zuletzt editiert von namir; 01.01.2011, 17:04.

  • #2
    Es wäre ja eine Erwähnung wert gewesen, dass es sich um JQUERY handelt.

    M.E. ist bei dieser Art der Nutzung von each nicht gewährleistet, dass die Objekte so rausgelesen werden, wie sie eingegeben wurden. Vgl. API zu JQuery
    Christian

    Comment


    • #3
      ja sorry stimmt hätte ich evtl. erwähnen sollen ^^

      ich habe das problem jetzt umgangen, indem ich mir den html-code mit php zusammen bauen und dann als html, statt json an die js funktion zurückgebe, dadurch ist das ergebnis immer das selbe

      Comment

      Working...
      X