Beiträge von Sempervivum

    Zitat

    Zeiten anzeige wielange es noch dauert da ist es wichtig das der farben ändert von grün nach gelb nach rot und der andere Balken sagt mir wielange es schon geht. Zurzeit erstelle ich einfach verschiedene Balken. Nur wenn er von dem einen Balken zum anderen wechselt bleibt der erste Balken da und ich sehe beide Überlappend.

    Verstehe ich noch nicht ganz: Willst Du nun zwei Balken anzeigen oder soll es zwei geben, aber abhängig von einem Kriterium, nur einer sichtbar sein und der andere unsichtbar? Letzters müsst Du erreichen können, indem Du jeweils display:none oder display:block für den ganzen Balken setzt.

    Selbstverständlich, ich erinnere mich jetzt an diese Balkendiagramme. Der Schlüssel ist "balkenEigenschaften". Dieser müsste etwa so aussehen:

    Code
    {
        colorBar: "green",
        colors: [5: "red", 10: "yellow"]
    }

    Das müsste irgend wo beim Erzeugen des Balkendiagramms angegeben werden.

    Sollte kein Problem sein:

    IMO macht das Speichern keinen Sinn: Ein Menü dient dazu, vierschiedene Seiten anzusteuern und wenn man bei einem erneuten Besuch den alten Zustand des Menüs wieder her stellt, müsste man auch die betr. Seite wieder laden. Diese ergibt sich jedoch aus der URL.

    Wichtiger erscheint mir, dass die Menüpunkte hervor gehoben werden, die zu der Seite gehören, die gerade offen ist. Der TO schreibt ja:

    Zitat

    sodass ich weiß auf welcher Seite ich mich befinde.

    Zitat

    Fehlt jetzt nicht noch ein INPUT - Befehl, wo ich bekanntgeben muss, welche Variable in welches Feld geschrieben soll werden?

    Was meinst Du mit input-Befehl? Ein input-Element muss es auf jeden Fall geben, etwas so:

    Code
    <input id="anz1">

    aber ich dachte, das sei ohnehin der Fall, weil Du es ja früher gepostet hattest. Mit diesem:

    Code
    $('#anz1').val(data[0]);

    wird er Wert dann hinein geschrieben.

    Ich konnte den Code nicht testen, weil mir das ganze Umfeld fehlt, DB etc. Da ist jetzt Debuggen angesagt:

    • Was sagt die Console?
    • Checkpoint einbauen, um zu sehen, ob der Callback überhaupt kommt und ob der Wert passt:
    Code
                $.getJSON('database.php', function(data) {
                    console.log(data);
                    $('#anz1').val(data[0]);
                    $("#amp1").trigger('change');
                    $('#anz2').val(data[1]);
                    $("#amp2").trigger('change');
                });
    • Prüfen, ob die verwendeten IDs im Javascript und im HTML zusammen passen. Wahrscheinlich macht es keinen Sinn, #anzx für das Eintragen des Wertes und #ampx für das Triggern des change zu verwenden.

    Die vorletzte Fehlermeldung kannst Du leicht beheben, wenn Du der Empfehlung dort folgst. Ich erwarte aber nicht, dass das das Problem löst.

    Zitat

    solange ich die console aus habe aktualisiert sich der wert nicht.

    Wenn ich aber dann die console an mache dann wird der Wert aktualisiert.

    Das ist mir ein Rätsel. Poste doch mal mehr Code aus dem Umfeld des Ajax. Die ganze Seite ist wahrscheinlich zu umfangreich, das ganze Zeichnen.

    let ist ähnlich wie var aber mit dem Unterschied, wie bei deinem Beispiel, dass, wenn der Click-Handler aufgerufen wird, er wieder den selben Variablenwert vorfindet, wie zu dem Zeitpunkt als er registriert wurde. Während bei var er den Endwert nach Durchlauf der Schleife vorfindet.

    Versuche es so:

    In database.php:

    Code
    $vars = [$rowanzeige1->wert00, $rowanzeige1->wert02];
    echo json_encode($vars);

    Und das Javascript:

    Code
                $.getJSON('database.php', function(data) {
                    $('#anz1').val(data[0]);
                    $("#amp1").trigger('change');
                    $('#anz2').val(data[1]);
                    $("#amp2").trigger('change');
                });

    Beliebter Fehler, es passiert folgendes: Die Eventlistener werden registriert und die Schleife ist zu Ende. Danach hat a den Wert 3. Wenn jetzt später geklickt wird, funktioniert nichts, weil es für 3 keine Elemente gibt.

    Abhilfe, indem man "let" verwendet:

    Code
    for(let a=0;a<=2;a++){

    Das ganze sollte auch viel einfacher gehen: Gib den Pfeilbuttons eine einheitliche Klasse und verwende dieses jquery:

    Code
        $(".xppfeil").addClass("xpdown").click(function(){
               if($(this).hasClass('xpdown')) {
                     $(this).removeClass("xpdown").addClass("xpup")
               }else{
                     $(this).removeClass("xpup").addClass("xpdown")
               }
         });

    Bastis Empfehlungen waren soweit alle richtig. Ich würde das Zurücksetzen der Formularelemente dem Reset überlassen und nur die, die damit nicht abgedeckt sind, ausprogrammieren. Also ein Resetbutton wie in Posting #5 und dann die Funktion:

    Code
            function reset() {
                for (var nr = 1; nr <= anzahl; nr++) {
                    document.getElementById("ergebnis" + nr).innerHTML = '';
                }
                document.getElementById("summe").innerHTML = '';
            }
            document.getElementById("resetbtn").addEventListener("click", reset);

    Der IE macht häufig Probleme, aber in diesem Fall habe ich keinen Anhaltspunkt dafür, dass es daran liegt. Du kannst trotzdem probeweise einen anderen Browser testen.

    Versuche, einen Checkpoint in den Code einzubauen und beobachte die Console:

    Code
        hR.onreadystatechange = function(){
            if ( hR.status == 200 && hR.readyState == 4 ){
                console.log("response");
                strResponseText = hR.responseText;
                Zeichnen(strResponseText);
            }
        };
    Zitat

    was ist das onreadystatechange?

    Damit meine ich dies:

    Code
        hR.onreadystatechange = function(){
            if ( hR.status == 200 && hR.readyState == 4 ){
                strResponseText = hR.responseText;
                Zeichnen(strResponseText);
            }
        };

    Dort wird die Funktion Zeichnen() aufgerufen, sobald die Antwort vom Server eintrifft und Du darfst sie auch nur dort aufrufen, weil sonst die Daten nicht zur Verfügung stehen.

    Zitat

    Warum aktualisiert er das denn nur wenn ich die console offen habe ?

    Dafür habe ich keine Erklärung. Bist Du sicher, dass er nicht aktualisiert, wenn die Console nicht offen ist?