Jquery load () und PHP-Variablen

7

Wenn ich eine PHP-Seite mit Jquery .load (file.php) lade, kann die enthaltene Datei die php-Variablen verwenden, die auf der Seite definiert wurden, die load () aufgerufen hat?

    
user1091856 12.12.2011, 19:48
quelle

6 Antworten

13

Sie missverstehen, wie die Dinge funktionieren.

  • PHP führt aus, bevor eine Browser-Antwort an den Client ausgegeben wird und der gesamte Code auf dem Server ausgeführt wird. Die in Ihrer PHP-Datei deklarierten Variablen werden zerstört, nachdem der gesamte PHP-Code ausgeführt wurde; sie "verschwinden".
  • JavaScript wird ausgeführt, nachdem die Browser-Antwort begonnen hat und der gesamte Code auf dem Client ausgeführt wird. Durch das "Laden" des Ausgabeergebnisses der PHP-Datei erhalten Sie keinen Zugriff auf die Variablen von PHP, nur die Ausgabe.

Wenn Sie bestimmte Variablen von PHP nach JavaScript übertragen möchten, könnten Sie in Ihrem PHP-Skript eine Ausgabe in JSON ausgeben :

%Vor%

Ihr JavaScript / JSON sollte etwa so aussehen:

%Vor%

Macht das Sinn?

    
Naftuli Kay 12.12.2011, 20:06
quelle
13

Nein, Sie müssen die Variablen, die Sie verwenden möchten, an Ihre file.php übergeben:

%Vor%

Und dann können Sie die in Ihrer Datei.php holen:

%Vor%

Wenn viele Variablen vorhanden sind, verwenden Sie die POST-Methode:

%Vor%

Und dann die Variablen in der Datei.php:

%Vor%     
themerlinproject 12.12.2011 19:52
quelle
5

Ja, verwenden Sie den Datenparameter, siehe Ссылка :

%Vor%

Die Parameter werden in die Datei test.php geschrieben und sind wie folgt zugänglich:

%Vor%     
konsolenfreddy 12.12.2011 19:55
quelle
0

Sie müssten diese Variablen über die .load-Funktion an die geladene PHP-Datei übergeben.

Beispiel:

%Vor%

Die in der aktuellen PHP-Datei definierten Variablen werden Teil des Javascript, das die neue PHP-Datei lädt.

    
Watermark Studios 12.12.2011 19:54
quelle
0
Der Bereich

variables im PHP -Skript, das von JavaScript geladen wurde, unterscheidet sich von der Seite, die das Skript PHP geladen hat, also lautet die Antwort nein.

Sie können jedoch globale Variablen definieren oder super globale Variablen wie ( $_GET , $_POST usw.) verwenden, um zu erhalten, was Sie wollen.

    
fardjad 12.12.2011 19:50
quelle
0

Das zweite Argument (Parameter) der JQuery-Ladefunktion sollte ein Objekt oder eine Callback-Funktion sein, könnte aber auch eine leere Zeichenfolge sein. Abhängig davon sendet load Post- oder Get-Requests.

Ich hatte die Idee, automatisch zwischen get und post umzuschalten (zum Beispiel wenn cookie gesetzt wurde), weil get schneller und cachefähiger ist und posts sicherer ist.

Es ist schlimmer, die load-Funktion einschließlich des Inhalts innerhalb der Callback-Funktion zweimal zu schreiben, als etwas zu schreiben:

%Vor%     
B.F. 29.12.2012 15:55
quelle

Tags und Links