2016-06-08 5 views
0

Bitte kann mir jemand mit diesem AJAX- und JSON-Problem in die richtige Richtung zeigen. Ich habe ein kleines Programm, das Benutzerinformationen abruft und dann die Daten mit JSON zur Verwendung auf einer Webseite zurückgeben soll. Unten ist der js und php Code.AJAX-Fehler mit json_encode-Array (und verifizierter JSON OK)

require_once 'databasefunctions.php'; 
$userinfo= array(); 
$username = filter_input(INPUT_GET, 'username', FILTER_SANITIZE_ENCODED); 
$users = GetMultipleIntranetRows("SELECT * FROM tthusers WHERE username LIKE '$username'"); 
if (!empty($users))   
{ 
    $userinfo['username'] = $users[0]['username']; 
    $userinfo['department'] = $users[0]['department']; 
    $userinfo['pin'] = $users[0]['pin']; 
    return json_encode($userinfo); 
    exit(); 
} 
return ""; 

UND

$(document).ready(function(){ 

$('#users').on('change', function(){ 
    var username = this.value; 
    var data = {username:username}; 
    $.ajax({ 
    //START OF AJAX 
    async:false, 
    cache:false, 
    type: "GET", 
    data: data, 
    dataType: 'json', 
    url: "getuserinfo.php", 
    success: function(results) 
    { 
     var b = results; 
    }, 
    error: function (results){ 
     var a = results; 
     } 
    }); 
}); 

}); 

Die Rückkehr immer fällt in die Fehler fangen, aber ich kann keine gemeldeten Fehler durch firebug finden. Die JSON-Daten zurückgegeben worden sieht aus wie:

{ "username": "Marke", "Abteilung": "Werkstatt", "Stift": 2222}

und wird als ok verifiziert.

Dank Matt

+0

"Die Rückkehr fällt immer in den Fehler Catch, aber ich kann keinen gemeldeten Fehler durch Firebug finden." - Das dritte Argument der Fehlerfunktion ist die Fehlermeldung. Schau es dir an. – Quentin

+0

'Fehler: Funktion (xhr, Status, Fehler) {var err = eval (" ("+ xhr.AntwortText +") "); Alarm (err.Message); } '- um den Eror zu sehen – splash58

+0

Echo das Ergebnis .. nicht zurückgeben. –

Antwort

1

In Ihrer PHP-Datei, schreiben Sie:

return json_encode(...); 

dass Code in einer Funktion ist, und der Rückgabewert dieser Funktion ist Echo-ed zu Browser?

Wenn der Code nicht in einer Funktion enthalten ist, ändern Sie zurück zu echo.

+0

Ja! "echo" sollte es beheben. Kehre niemals zu einem Ajax zurück, immer "echo" –

+0

aaaaaarrrrrrgggghhhhhh warum habe ich eine Rückkehr dort, ich bin so ein Idiot! Danke, Muhammad. –

Verwandte Themen