2017-05-17 16 views
0

Ich weiß nicht jQuery so tut mir leid, wenn das eine dumme Frage ist.

Wenn ich Wert von PHP zu Javascript übergibt, werden sogar vorherige mit Echo gedruckte Nachrichten übergeben, wie kann ich das vermeiden?

php

$Connection = new Connection("..."); 
    $array = $Connection->arrCol("SELECT IT FROM global", "IT"); 
    echo json_encode($array); 

jQuery

$(document).ready(function(){ 
$("button").click(function(){ 
    $.get("services/test.php", function(data, status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }); 
}); 
}); 

Ergebnis

verbunden, an (localhost) (user: root) (db: ...) stausUptime: 440.790 Threads : 1 Fragen: 1244 Langsame Abfragen: 0 Öffnet: 53 Flush Tabellen: 1 Offene Tabellen: 1 Queri es pro Sekunde avg: 0,2 (Meldung "Echo" nach der Methode der Verbindung in php)

[ "..."] (angeforderten Daten)

+0

Ich verstehe nicht, was Sie wollen – victor

+0

ich will PHP sendet nur Array – turbi

Antwort

1

Wenn Ihre Connection Klasse tut ein Echo und Sie don Wenn Sie das in Ihre JSON-Ausgabe einmischen möchten, müssen Sie den Ausgabepuffer steuern.

Zum Beispiel:

// Start catching the output 
ob_start(); 

// Run code that echoes unwanted stuff under the hood 
$Connection = new Connection("..."); 
$array = $Connection->arrCol("SELECT IT FROM global", "IT"); 

// Clear the output buffer and stop buffering (i.e. discard that echo) 
ob_end_clean(); 

// Output JSON 
header('Content-Type: application/json'); 
echo json_encode($array); 
0

Sie einen Blick auf output buffering in php nehmen sollte.

Rufen Sie die ob_start(); Funktion am Anfang Ihres PHP-Code, und vor dem letzten Echo-Anweisung Aufruf ob_end_clean(); die Ausgabepuffer aus den vorhergehenden Echo/print-Anweisungen zu reinigen.