2016-05-13 3 views
-1

Ich bin sehr neu zu all dem, also entschuldige ich mich, wenn dies eine einfache Frage ist. Ich arbeite in PHP. Ich bringe Daten von SQL Server 2008 ein und erstelle eine Tabelle. Ich habe eine Fußzeile, die ich für jede Spalte zusammenfassen muss. Ich möchte die Daten in der Tabelle bohrbar machen. Wenn die Daten nicht bohrbar sind, fasst die Fußzeile alles perfekt zusammen, aber wenn ich die href hinzufüge, gibt die Fußzeile $ NaN für diese spezifische Spalte zurück. Hier ist mein Code mit der Fußzeile richtig funktioniert (kein hrefs): `

$out = array(); 

while($data = odbc_fetch_array($resultsSalesOrdersHeader_SalesOrderHeader)) 
{ 
?> 

<?php 

$row = array(

    $data['SalesOrder'], 

    $data['Customer'], 

    $data['CustomerName'], 

    $data['Branch'], 

    $data['Salesperson'], 

    $data['FinalDate']); 

    array_push($row, "$".number_format(($data['PreDateValue']),2));  

    array_push($row, "$".number_format(($data['Adds']),2)); 

    array_push($row, "$".number_format(($data['Changes']),2)); 

    array_push($row, "$".number_format(($data['Deletes']),2)); 

    array_push($row, "$".number_format(($data['Delta']),2)); 

    array_push($row, "$".number_format(($data['EndingValue']),2)); 


     $out[] = $row; 
} 

echo json_encode(array("aaData" => $out)); 
?>` 

und ein Ausschnitt aus dem Fußzeile Code:

var iTotalPrice5 = 0; 
        for (var i=0 ; i<aiDisplay.length ; i++) { 
         var y = aaData[ aiDisplay[i] ][11]; 
         var z = y.replace("$",""); 
         iTotalPrice5 += parseFloat(skipComma(z)); 
        } 

        var nCells = nRow.getElementsByTagName('th'); 
        nCells[11].innerHTML = "$"+addCommas(iTotalPrice5.toFixed(2)); 

Die in der Summe bringt perfekt. Hier ist ein Ausschnitt des Codes verwende ich, um zu versuchen und den Hyperlink hinzufügen, aber es bricht die Fußzeile:

array_push($row, "<a href='index.php?p=SOEndingValue&enddate=".$enddate."&startdate=".$startdate."&SalesOrder=".$data['SalesOrder']."' target='_blank'>". 
       "$".number_format(($data['EndingValue']),2)."</a>"); 

Was muss ich tun, um die Hyperlinks zu schließen, und die Fußzeile Summe richtig zu machen?

Danke!

+0

Wie ist '$ out' definiert? –

+0

$ out = array(); – Djones

+0

'NaN' bedeutet keine Nummer. Das bedeutet, dass parseFloat es nicht schafft, skipComma (z) in einen Float umzuwandeln. Sie sollten drucken, was auf z passiert. – Unex

Antwort

1

Wie Sie wissen sollten, ist Ihr Array $row eine Liste von Zahlen, die Sie addieren, um Ihre Summe in JavaScript zu erstellen. Wenn Sie eine Textzeile hinzufügen, werden Sie sicherlich bemerken, dass es sich nicht um eine Nummer handelt (NaN). Wenn Sie die Fußzeile in Ihrem JSON-Array übergeben möchten, müssen Sie sie an einer anderen Stelle im Array $out hinzufügen.

+0

Irgendeine Idee, wie ich das machen würde? Ich bin mir wirklich nicht sicher. – Djones

+0

Fügen Sie nach '$ out [] = $ row;' '$ out [] =" ". "$".number_format(($data['EndingValue']),2)." ";'. Für den genauen Code, der in JavaScript verwendet werden soll, müssen Sie herausfinden, wie das JSON-Array verwendet wird. –

1

Versuchen Zugabe

var n = str.indexOf(">")+1; 
var m = str.indexOf("</a>"); 
z = z.substring(n, m); 

Auf for Schleife.

for (var i=0 ; i<aiDisplay.length ; i++) { 
    var y = aaData[ aiDisplay[i] ][11]; 

    var n = str.indexOf(">")+1; 
    var m = str.indexOf("</a>"); 
    var z = y.substring(n, m); 

    z = z.replace("$",""); 
    iTotalPrice5 += parseFloat(skipComma(z)); 
} 

die Werte zwischen den <a> und </a> Tags Dies wird extrahiert, und Sie können es für Berechnungen verwenden.

+0

Hm. Ich habe versucht, das hinzuzufügen, aber aus irgendeinem Grund verhinderte es, dass irgendwelche Daten in die Tabelle gebracht wurden. Irgendeine Idee warum das wäre? Es gab $ NaN in der Fußzeile nicht zurück, es gab $ 0 zurück. Aber es sollte auf jeden Fall Daten gebracht werden. Danke, – Djones

+0

Also habe ich das herausgefunden. Du warst super nah dran. Ich musste mich zu y ändern. so y.IndexOf (">") + 1; und y.IndexOf ("") ;. Es funktioniert jetzt perfekt. Danke für die Hilfe – Djones

Verwandte Themen