2017-01-15 4 views
1

Was dies tun soll, ist die actions.php aufrufen, und geben Sie dann ein Array des 'POST'als' GET 'Typ Hier ist der Code. Ich kann die Warnung ("Nicht im Ajax") zu reagieren, aber alles innerhalb der $.ajax nicht: Gibt es irgendwelche Vorschläge?jquery ajax reagiert nicht

/****** Dies ist die jquery und Ajax-Dateien ***********************/

/****************************

$("#loginSignupButton").click(function() { 
    // alert("Not in the ajax"); 
    $.ajax({   
     type: "POST", 
     url: "actions.php?action=loginSignup", 
     data: "email=" + $("#email").val() + "&password" + $("#password").val() + "&loginActive=" + $("#loginAcive").val(), 
     success: function(result) {  
      alert(result);  
     } 
    })   
}) 

/************ ********************/

/**** auf der actions.php-Datei Dies ist der Code: ****/

include ("functions.php");

if ($_GET['action'] == "loginSignup") { 

     print_r($_POST); 

    } 

/**************************/

+1

Haben Sie die jQuery-Bibliothek laden? –

+1

Fügen Sie Ihrem AJAX-Aufruf eine Fehlerfunktion hinzu und sehen Sie, ob Sie Fehler bekommen. Fehler: Funktion (jqXHR, TextStatus, ErrorThrown) { console.log (TextStatus, errorThrown); } – Hakunamatata

+0

Sie können keine Abfragezeichenfolge für eine POST-Anforderung senden. Sie müssen die 'Daten' senden ist ein Objekt (Schlüssel-Wert-Paare). – Terry

Antwort

1

Normalerweise, wenn Sie auf eine Schaltfläche klicken hat es eine Standard Aktion, die Sie mit

verhindern können
$("#loginSignupButton").click(function(event) { 
event.preventDefault() 
//call ajax stuff here 
} 

In Ihrem Fall erfassen Sie das Ereignis nicht, da Ihr Rückruf keine Eingabeparameter hat. Außerdem sendet ein POST normalerweise etwas an den Server, wenn Sie erwarten, etwas zurück zu bekommen, das in Ihren Erfolgsrückruf eingehen würde. In diesem Fall zeigen Sie dies einfach als Warnung an, und das ist alles, was ich erwarten würde dieser Fall.

Bitte beachten Sie, dass Methode: POST einige serialisierbare Daten an den Server sendet, während ein GET etwas vom Server anfordern würde. Es ist schwer zu verstehen, was genau Sie vorhaben.

Nebenbei bemerkt: Sie können auch als auch ‚this‘ Schlüsselwort verwenden wie:

$("#loginSignupButton").click(function() { 
this.preventDefault() 
} 

, die Sie in die Zukunft sehen kann, aber keine Sorge darüber, wie es ist nicht klug zu verstehen AJAX fordert

+1

Ihr Beispiel wäre klarer, wenn Sie nicht von der Standardfunktionssyntax des ursprünglichen Posters auf die fette Pfeilsyntax umgeschaltet hätten ... –

+0

Danke, geändert. – JonathanMitchell

0

Ich denke, dass Ihre Ressource keinen Erfolgscode zurückgibt, deshalb wird Ihre Erfolgsfunktion nie ausgeführt.

Um herauszufinden, ob das wahr ist, fügen Sie unten Zeilen Code:

error: function(jqXHR, textStatus, errorThrown) { 
    alert(textStatus); 
} 

Sie können mehr über die Verwendung jQuery.ajax in jQuery docs lesen.

1

Sicherstellen, dass die Taste tatsächlich angeklickt wird (vielleicht Ihre ID ist falsch?)

$("#loginSignupButton").click(function() { 
alert('working') 

Dann ist dieser Erfolg unter hinzufügen:

error: function(e) { 
    console.log(e) 
} 

Öffnen Sie Ihre Konsole (F12) und nehmen ein schau, ob es eine Fehlerausgabe gibt.

Während Sie in Ihrer Konsole sind, sehen Sie sich die Registerkarte Netzwerk an. Wird eine Anfrage gesendet? Was sind die Parameter? Wie lautet die Antwort?

Beachten Sie auch, ein Ereignis-Listener wie diese können erst eingestellt werden, nachdem das DOM geladen ist, so dass Sie es mit $(document).ready(function(){ ... }

0

wickeln müssen also den Bootstrap-Ajax-Link stellt sich heraus, dass ich anscheinend wurde mit oder nicht funktioniert Link:

Wie auch immer, wenn ich ändere den ajax es funktionierte googeln: