Beiträge von Arne Drews

    Das liegt daran, dass bei nicht numerischen Schlüsseln automatisch in ein Objekt gecastet wird:

    Das war quatsch, sorry. Array() wird ja auch als Objekt betrachtet...

    EDIT: Mir fiele dann nur noch eine Zwischenlösung ein.

    JavaScript
    var oSortedObject = {};
    var aSortedKeys = Object.keys(obj).sort( (a, b) => { return obj[a].score - obj[b].score; } );
    
    for ( var k in aSortedKeys )
      oSortedObject[aSortedKeys[k]] = obj[aSortedKeys[k]]

    Sorry, aber das passt irgendwie nicht. Er wurde ja nun darauf hingewiesen, dass Mischen von PHP und JavaScript nicht sehr clever ist und nun kommt ne Lösung genau damit? ;)

    Und sortieren tut gar nicht nötig, das erledigt man über die Datenbank, in dem man sich nur den neuesten Eintrag holt.

    Das Auslesen hast Du bereits.

    Dein Ergebnis gibst du auch bereits als JSON-Objekt aus: echo json_encode($data);

    AJAX steht für Asynchronus JavaScript and XML.

    Das Prinzip hinter AJAX ist die asynchrone Kommunikation mit zwischen Client und Server, ohne PageReload.

    Details kann man im Netz finden, bspw. im MDN.

    Der Client ruft salopp gesagt ein Server-Script auf, was bspw. Deine .php-Datei sein kann.

    Das Serverscript liefert Daten in Form einer Ausgabe, bspw. Dein echo json_encode($data);

    Die Verarbeitung der Rückgabe erfolgt dann mit ganz gewohntem JavaScript.

    Beispiele findest Du unter dem obigen Link.

    Falls Du gleich Tipps bekommst, das mit jQuery o.ä. zu machen, würde ich Dir empfehlen, es trotzdem zunächst mit JavaScript nativ zu machen, weil der Lerneffekt aus meiner Sicht deutlich höher ist.

    An DomDocument habe ich auch schon gedacht. Jedoch bietet diese Klasse keine Funktion an um Klassen anzusprechen sondern nur Ids. Das war der Punkt warum ich DomDocument nicht genommen habe.

    #2 immer noch nicht gelesen?! Da steht bspw. auch was von DOMXPath, einafcher gehts kaum noch...

    Allerdings wird das Ganze dann so kryptisch, dass man bzgl. Lesbarkeit kaum noch einen Vorteil gegenüber Regex hat.

    WHAT???

    PHP
    $oDom = new DomDocument();
    $oDom->loadHTML( $html );
    
    $oXPath = new DOMXPath( $oDom );
    $oNodeList = $oXPath->query( '//li[@class="item_now"]' );
    
    foreach ( $oNodeList as $node )
        echo $node->nodeValue . '<br>';

    Überraschende Ausgabe:

    Code
    Fußball
    Fahrradhelm
    Regenjacke
    Handschuhe
    Sportschuhe
    Tennisschläger
    Handball
    Fahrrad

    Die Bedingung ist aber außerhalb der Funktion und wird damit nur beim ersten mal berücksichtigt.

    Ich würde folgendermaßen rangehen:

    1. Definition der Grundlagen:

    HTML
    <div class="timer"></div>
    JavaScript
    var eTimer = document.querySelector( '.timer' );
    var oTimer = { hours : 0, minutes : 0, seconds : 0 };

    2. Timer-Aktualisierung verarbeiten:

    Jetzt wird in jedem Durchlauf die Formatierung neu gesetzt und alles sollte so sein, wie Du es wünschst...

    Habs bei mir so gelöst:

    JavaScript
    _h = ( _h<10 ) ? '0' + _h.toString() : _h.toString();
    _m = ( _m<10 ) ? '0' + _m.toString() : _m.toString();

    Die Variante von Sempervivum gefällt mir allerdings vom Ansatz her sehr gut. Dort benötigt man allerdings die length des Strings nicht, substr() kann das mit negativen Zahlen:

    JavaScript
    _h = ('0' + _h).substr( -2 );
    _m = ('0' + _m).substr( -2 );

    Da steht auch nichts davon. Da steht, dass Du das maskieren musst, wenn Du HTML direkt als Zeichenkette per PHP ausgeben willst:

    PHP
    echo "<div class=\"foobar\">some text with \"Quotes\"</div>";

    Das ist aber unnötig, weil man in PHP auch SingleQuotes nutzen kann, was in diesem Fall absolut Sinn macht:

    PHP
    echo '<div class="foobar">some text with "Quotes"</div>';

    Selbst wenn, wie in Deinem Falle das über eine Variable läuft:

    PHP
    $goto = '<div class="foobar">some text with "Quotes"</div>';
    echo $goto;

    Mit HTML und irgendwelchen Sonderzeichen hat das nichts zu tun.

    Aber ist das eigentlich Problem klar geworden, also weißt du was mein Problem ist?

    Ja, die Backslash-Maskierung ist zumindest für den beschriebenen Fall nicht nötig, daher hast Du kein Problem mehr...

    Ich weiß, wenn ich direkt im HTML Code Anführungszeichen oder Sondernzeichen ausgeben möchte, müssen diese maskiert werden.

    WHAT??? Seit wann denn das?!

    Code
    <div>Warum sollen "Anführungszeichen" nicht gehen, oder auch Sonderzeichen, wie bspw. ⌨ oder ☺</div>

    Btw. gibt es bei HTML genau genommen keinen Code, sondern Quelltext. Mit HTML kann man nicht programmieren, das ist eine Auszeichnungssprache.