2017-01-11 1 views
-3
$.ajax({ url: '/my/site', 
    data: {action: 'test'}, 
    type: 'post', 
    **success: function(output) { 
        alert(output);** 
       } 
}); 

Wenn ich das obige Skript verwenden, zeigt es mir nur innerHTML (of example.php). Ich möchte, dass der obige Code meine PHP-Funktion ausführt, die zu einer anderen PHP-URL (example.php) umleitet. Soll ich die Erfolgsfunktion entfernen? Oder gibt es eine mögliche Lösung?Ajax zu PHP-Funktion

+2

versuchen Sie, die Ajax-Antwort den Browser umleiten zu lassen? das wird nicht funktionieren. e, g http://stackoverflow.com/questions/2927044/redirect-on-ajax-jquery-call –

+0

@Joel_Blum, wenn ich versuche, mit der Datenbankabfrage umzugehen? Ich glaube, es wird funktionieren. Ich hoffe nur, dass meine Annahme richtig ist. – L7117

+2

Der Ajax-Anruf wird nicht umgeleitet. Sie müssen die PHP-Funktion reagieren und basierend auf dieser Antwort eine js-Stelle in Ihrer Erfolgsfunktion haben. – bos570

Antwort

0

Das ist im Grunde genau das, was Ajax macht, um einfach zu bleiben, der Ajax-Aufruf bekommt den Inhalt der Datei. Wenn sich Ihre PHP-Datei also auf einem Server befindet, auf dem PHP ausgeführt werden kann, wird der Code ausgeführt. Aber nur die Inhalte, die Sie „Display“ auf der Seite werden von dem Ajax-Aufruf retreived werden, Beispiel:

file1.php -> nichts diplayed wird, Code ausführen und Variablen werden die Werte annehmen, aber Ajax-Aufruf wird eine leere Zeichenfolge zurück:

<?php $x=1; $y=$x+1; /* -> y: 2 */ ?> 

file2.php -> ein Echo gemacht wird, wird Code ausführen und Variablen werden die Werte, kehrt der ajax-Aufruf eines Strings mit nur nehmen, was diplayed wurde: 2

<?php $x=1; $y=$x+1; echo $y; ?> 

file3.php -> alle Texte außerhalb von PHP werden auch von dem Ajax-Aufruf zurückgegeben werden: y = 2

y = <?php $x=1; $y=$x+1; echo $y; ?> 

Normalerweise werden Sie Daten verwenden, die Formatierung, wenn Sie Daten übergeben wollen, wie JSON.

Dies bedeutet, dass Ajax nicht dazu dient, die Seite umzuleiten, sondern einen externen Code ausführt oder Daten abruft. Zumindest könntest du die neue URL umleiten, um sie weiterzuleiten, und dann in JS weiterleiten, wenn dies das ist, was du willst, aber nicht umleiten, nur von dem PHP-Code, den du anrufst. Es ist eine andere Seite.

+0

Danke. Aber was ich will, ist PHP-Funktion mit Javascript ausführen. Das ist es. Wenn js gestartet wird -> löst die PHP-Funktion aus. Keine Daten werden unbedingt weitergegeben. – L7117

+0

Ich habe das gefunden. Funktion someFunction() { Echo 'Antwort'; } if ($ _GET ['do'] === "someFunction") { someFunction(); } Ich glaube, es wird die Seite aktualisieren, das Schlimmste für mich. – L7117

+0

es hängt davon ab, was Sie tun möchten, ist dies nicht klar. Wenn Sie eine Webseite auf Benutzereingaben umleiten möchten, genügt ein einfacher Link zur URL oder Javascript (suchen Sie nach window.location). Wenn Sie einen Teil einer Seite aktualisieren möchten, benötigen Sie JS, um dies zu tun. Sie erstellen die Seite mit der Seite, die Sie mit Ajax aufrufen, und rufen das Ergebnis erneut auf. Verwenden Sie dann bei der Rückkehr JS, um es in die Seite zu injizieren. – Kaddath

0

Sie können Ihre PHP-Funktion auf einer eigenen Seite wiedergeben und Ajax verwenden, um diese Seite bei Erfolg zu öffnen.

+0

Sieh nicht, dass dies eine 6 Jahre alte Frage war – Televimsa