2016-06-15 9 views
0

Ich versuche, die Funktion getJSON mit einer PHP-Datei, die einige JSON Echo. Wenn ich das von der PHP-Datei erwartete JSON als JSON-Datei speichere, funktioniert es perfekt, aber wenn ich die PHP-Datei als URL verwende, funktioniert es nicht, weil es beim Analysieren von PHP in Zeile 1 fehlschlägt.GetJSON funktioniert nicht mit PHP-Datei

PHP file:

<?php 

$jsondata = array(); 

if(isset($_GET['param'])) { 

if($_GET['param'] == 'valor') { 
    $jsondata['success'] = true; 
    $jsondata['message'] = 'Correct.'; 
} else { 
    $jsondata['success'] = false; 
    $jsondata['message'] = 'Incorrect.'; 
} 
header('Content-type: application/json; charset=utf-8'); 
echo json_encode($jsondata); 
exit(); 
} 

?> 

Und das ist, was ich in der Javascript-Datei bin mit:

$.getJSON('test.php', {format: "json"}, function(data) { 
     window.alert("Loaded"); 
    }).fail(function(data, textStatus, error) { 
     console.error("getJSON failed, status: " + textStatus + ", error: "+error) 
    }); 

Wenn ich von test.php ändern test.json es funktioniert.

EDIT: Ich war mysql anstelle von mysqli und der Server eine Tabelle ausgegeben und dann meine JSON und das ist, warum ich die Parse-JSON Fehler hatte ... nur Feste von mysql Wechsel mysqli. Danke an alle.

+0

'PHP-Datei: (PHP-Tag nicht angezeigt, weiß nicht warum)' was bedeutet das? – Daan

+0

Der Header einer PHP-Datei, die hier nicht auf SO angezeigt wird, aber ich habe es in meiner Datei. – Slei

+0

Ich habe es für Sie bearbeitet. – Daan

Antwort

0

Versuchen Sie folgendes:

if($_GET['param'] == 'valor') { 
    $row = array('success'=> true,'message'=>'Correct'); 
    array_push($jsondata,$row); 
} else { 
    $row = array('success'=> false,'message'=>'Incorrect'); 
    array_push($jsondata,$row); 
} 

Und das Echo bleibt das gleiche:

echo json_encode($jsondata); 

ich so codiert haben, wenn ich mit JSON und PHP mit JQuery.I arbeiten musste es hoffen funktioniert auch für dich.

+0

Ich halte die gleichen Fehler: getJSON fehlgeschlagen, Status: ParserError, Fehler: Syntaxerror: JSON.parse: unerwartetes Zeichen in Zeile 1, Spalte 1 der JSON-Daten ich das Problem erraten ist, weil getJSON wörtlich liest das PHP statt das Echo zu lesen json_encode ... – Slei

+0

Versuchen Sie, irgendwelche Wörter mit irgendeiner Betonung auf Ihrem JSON zu addieren? Wenn ja, müssen Sie die Zeichenfolge codieren, JQuery akzeptiert nur UTF-8-Zeichenfolgen. Sie müssen verwenden: 'utf8_encode (" Wort mit Akzentuierung ")' – ThonyRG

+0

Edited Main Post – Slei