Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Ajax - Serverantwort wird nicht ausgewertet

Hi Leute,

ich habe vor eine "soziale Seite/Netzwerk" zu machen für ehemalige Schüler.

Nun habe ich unter dem Profil einer Person einen Freundschafts-Button eingefügt, der eine XH-Request an den Server schickt. Per Post wird die ID des Betrachteten übermittelt.
Per Session wird die eigene ID abgerufen.

Der Server trägt die Freundschaftsanfrage ordnungsgemäß in die DB ein. (Bei Erfolg wird "OK" ausgegeben, wenn die Freundschaft bereits angefragt wurde oder besteht, wird "ERR" ausgegeben.

Nun das Problem: ich habe auch schon alert(z) angegeben, es gibt auch 'OK' aus, aber trotzdem springt der in der if-Abfrage immer zum else... :( Ich bin am Verzweifeln.

Kann es sein, dass die Kodierung der Dateien eine Rolle spielt?

parser/friend.php:

<?php include_once '../includes/protected.php';

if(isset(
$_POST["id"]) && is_numeric($_POST["id"])) {
    include_once 
'../includes/db.php';
    
$u mysqli_real_escape_string($conn$_SESSION['id']);
    
$id mysqli_real_escape_string($conn$_POST['id']);
    
    
$sql "SELECT * FROM {$dbpfx}friends WHERE (user1='$u' AND user2='$id') OR (user1='$id' AND user2='$u') LIMIT 1";
    
$erg mysqli_query($conn$sql) or die(mysqli_error($conn));
    if(
mysqli_num_rows($erg) > 0) {
        echo 
'ERR';
        exit;
    } else {
        
$sql "INSERT INTO {$dbpfx}friends (id, user1, user2, accepted) VALUES (NULL, $u$id, 0)";
        
mysqli_query($conn$sql);
        echo 
"OK";
        exit;
    }
}

?>


profile.php:
<hr />
<button id="friend">Freundschaft anfragen</button>


<script type="text/javascript">
_("friend").addEventListener("click", friend, false);

function friend() {
    var id = <?php echo $erg["id"]; ?>;
    var a = new Ajax("POST", "parser/friend.php", function(z) {
        if(z=="OK") {
            alert('Freundschaftsanfrage an <?php echo $erg["vorname"]; ?> gesendet.');
            _("friend").innerHTML = 'Freundschaft beenden';
            _("friend").removeEventListener("click", friend, false);
            //_("friend").addEventListener("click", unfriend, false);
        } else {
            alert('Ein Fehler ist aufgetreten.\nDas tut uns leid.');
        }
    });
    a.send("id="+encodeURI(id));
}

</script>

PS: _(x) = Meine Kurzform für document.getElementById(x)

Antworten zu Ajax - Serverantwort wird nicht ausgewertet:

Leider wird es ein bisschen Schwierig, die Seite hier zu posten, weils ja ein geschützter Bereich ist. Ich könnte maximal nen Testzugang per PN vergeben.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hm, also ich kann jetzt auch nur was schätzen, da du ja aber sagst, dass du ein Test-alert ausgegeben hast, ist das Problem vllt., dass sich bei dem zurückgegebenen String Whitespaces eingeschlichen haben... du kannst ja mal ein trim versuchen oder ne contains-Prüfung machen statt auf equals zu testen.

Gute Idee - wird gemacht :D

JAAA!! Es funktioniert :)
Vielen, Vielen Dank an mati!

mit
if(z.indexOf("OK")!=-1)
gehts...

Und siehe da:
Ein Zeilenumbruch hatte sich eingeschlichen...

for(i in z) {
    alert(z.charAt(i) + " " + z.charCodeAt(i));
}

Vielen Dank.
« Letzte Änderung: 10.04.13, 15:19:21 von .hendrik »

« "Prospekte" bei GMXhtml codes »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Application Server
Ein Application Server, zu deutsch Anwedungsserver, ist ein Netzwerkrechner (Server) auf dem verschiedenste Anwendungsprogramme ausgeführt werden können. Der Be...

Printserver
Der Printserver ist ein Rechner im Netzwerk, der den Datenfluß zu einem oder mehreren Druckern steuert und eingehende Druckaufträge in einer Warteschlange verw...

Server
Der Begriff Server stammt aus dem englischen und bedeutet "Diener". In der EDV bezeichntet Server entweder eine Software- oder Hardwarekomponente.   Als Software, ...