2016-05-20 6 views
-1

Ich bin ein wenig ratlos, wie das geht: was passiert, ist, dass ich eine Funktion in AJAX habe Ausdrucken von einer PHP-Datei alle 5 Sekunden, wie folgt:Automatisch Zell in Tabelle aus AJAX gezogen

function loadJSON() { 
$.ajax({ 
    url: 'dataPull.php?buster='+Math.random(), 
    type: 'get', 
    dataType: 'json', 
    error: function (xhr, status, error) { 
     setTimeout('loadJSON()',5000); 
    }, 
    success: function (txtInfo) { 

     $("#pulltxtdata").text(txtInfo.details.txt.info); 
     $("#pulltxtdata2").text(txtInfo.details.txt.info2); 
     $("#pulltxtdata3").text(txtInfo.details.txt.info3); 

     setTimeout('loadJSON()',5000); 
    } 
}); 
} 

Was ich versuche mit <td id="pulltxtdata"></td> im HTML zu erreichen ist der Hintergrund der Zelle jedes Mal, wenn der Wert von pulltxtdata trifft einen bestimmten Schwellenwert (dh rote Zelle Hintergrund, wenn es über 10 geht) umfärben. Ist das etwas, was ich in die JSON/AJAX-Funktion aufnehmen kann oder muss ich irgendwie den Wert pulltxtdata nach der Berechnung ziehen?

Antwort

1

nach dem Hinzufügen von Text, überprüfen Sie den Wert innerhalb pulltxtdata:

function loadJSON() { 
    $.ajax({ 
    url: 'dataPull.php?buster=' + Math.random(), 
    type: 'get', 
    dataType: 'json', 
    error: function(xhr, status, error) { 
     setTimeout('loadJSON()', 5000); 
    }, 
    success: function(txtInfo) { 

     $("#pulltxtdata").text(txtInfo.details.txt.info); 
     $("#pulltxtdata2").text(txtInfo.details.txt.info2); 
     $("#pulltxtdata3").text(txtInfo.details.txt.info3); 

     var pullTxtData = $('#pulltxtdata'); 

     if (parseInt(pullTxtData.text()) >= 10) 
      pullTxtData.css('background-color', 'red'); 
     }); 

     setTimeout('loadJSON()', 5000); 
    } 
    }); 
} 
+0

, die den Trick taten (einmal entfernte ich die zusätzlichen Gewinne nach dem CSS-Aufruf), danke Sie! Die einzige Frage, die ich noch habe, ist, ob es möglich ist, mehrere Schwellen zu machen (d. H., Wenn es 10 erreicht, ist es gelb, über 20 wird es rot, usw.). Vielen Dank! – Lareous

+0

Sicher, du kannst diese if-Anweisung duplizieren und '> = 10 'durch'> = 20' und '(' background-color ',' red ') ersetzen;' with '(' background-color ',' yellow ') 'oder welche Farbe auch immer du magst. Dies funktioniert für eine kleine Anzahl von Schwellen (z. B. 5-6 max), aber wenn Sie etwas Komplexeres möchten, lassen Sie es mich wissen, Sie möchten vielleicht etwas automatisierter machen. –

0

Sie müssen in der Lage sein, die gezogenen Daten zu betrachten und eine Wertbestimmung vorzunehmen. Dann könnten Sie so etwas tun:

var value = ProperlyConvertToSomeNumber(txtInfo.details.txt.info) ; 

$("#pulltxtdata").text(txtInfo.details.txt.info); 
$("#pulltxtdata").css("background-color", 
         SomeFunctionThatReturnsAColorStringBasedOnValue(value)); 
Verwandte Themen