Jquery Ajax: PHP-Rückgabewert

  • PHP

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von rotherford.

    Jquery Ajax: PHP-Rückgabewert

    Hi!

    Mein Code sieht im Moment so aus:

    JS: (Ausschnitt)

    Quellcode

    1. //AJAX REQUEST
    2. var Request = $.ajax({
    3. type: "POST",
    4. url: "login.php",
    5. data: {..}
    6. })
    7. Request.done(function(succeed) {
    8. //Der Parameter Succeed soll angeben, ob der Vorgang geklappt hat.
    9. if (succeed) {
    10. //..
    11. }


    Login.php (Ausschnitt)

    PHP-Quellcode

    1. <?php
    2. if (!ftp_connect(..)) {
    3. echo 'false';
    4. exit;
    5. }
    6. echo 'true';
    7. ?>


    Leider wird eine Exception bei ftp_connect auch per echo ausgegeben.
    Deshalb krieg ich - wenn ich es mal ausgeben lasse - für succeed immer so etwas:

    Quellcode

    1. Exception
    2. ..
    3. false


    Ich habe schon versucht mit JSON Rückgabewerten den richtigen Wert (also: true/false) herauszufischen.
    klappt aber irgendwie nicht.
    Kennt jmd. eine Lösung?
    Kann man das Ausgeben von Exceptions mittels echo nicht irgendwie ünterdrücken?
    /nicht getestet

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „rotherford“ ()

    schreib in die IF-Abfrage:
    alert(succed);

    Dann sollte dir der Rückgabewert in das Alert gepackt werden

    Quellcode

    1. //AJAX REQUEST
    2. var Request = $.ajax({
    3. type: "POST",
    4. url: "login.php",
    5. data: {..}
    6. })
    7. Request.done(function(succeed) {
    8. //Der Parameter Succeed soll angeben, ob der Vorgang geklappt hat.
    9. if (succeed) {
    10. alert(succed);
    11. }

    Warum so umständlich ?

    Du kannst gleich eine function nehmen für die Rückgabe ..

    HTML-Quellcode

    1. $.ajax({
    2. type: "POST",
    3. url: "login.php",
    4. data: "user=tet&pw=1234",
    5. success: function(data){
    6. alert(data);
    7. }
    8. });


    Da wo das alert(data) steht kannst du alles möglich reinhauen... einfacher und kürzer meiner meinung nach.

    Mfg
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Das ist klar am AJAX Code ist ja auch nichts falsch wenn dann an einem PHP Script. Also muss du dein PHP Script dem entsprechend richtig aufbauen.

    Du kannst ja im Ajax teil auch noch abfragen was zurück kommt..
    Wenn du z.b. nur was machen willst wenn true beim php script rauskommt dann prüfst du halt ob du nen String mit "true" zurückbekommst wenn nicht macht er halt nichts.


    EDIT://
    Wenn du vor einer PHP Funktion ein @ machst dann unterdrückt er die Fehlermeldungen.


    Mfg
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Danke :)

    Lösung:

    JS:

    Quellcode

    1. //AJAX REQUEST
    2. var Request = $.ajax({
    3. type: "POST",
    4. url: "login.php",
    5. data: {..}
    6. })
    7. Request.done(function(succeed) {
    8. //Der Parameter Succeed soll angeben, ob der Vorgang geklappt hat.
    9. if (eval(succeed)) {
    10. //..
    11. }
    /nicht getestet

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „rotherford“ ()