Ich muss eine Seite aus meinem PHP-Skript unter bestimmten Bedingungen anzeigen. Ich habe eine if-Bedingung und mache ein "include", wenn die Bedingung erfüllt ist.
if(condition here){
include "myFile.php?id='$someVar'";
}
Jetzt ist das Problem, dass der Server eine Datei "myFile.php" hat, aber ich möchte diese Datei mit einem Argument (id) aufrufen und der Wert von "id" ändert sich mit jedem Aufruf.
Kann mir bitte jemand sagen, wie ich das erreichen kann? Vielen Dank.
php
parameters
include
lostInTransit
quelle
quelle
Antworten:
Stellen Sie sich das Include als das vor, was es ist: Ein Kopieren und Einfügen des Inhalts der enthaltenen PHP-Datei, die dann interpretiert wird. Es gibt überhaupt keine Bereichsänderung, sodass Sie weiterhin direkt auf $ someVar in der enthaltenen Datei zugreifen können (auch wenn Sie möglicherweise eine klassenbasierte Struktur in Betracht ziehen, in der Sie $ someVar als Parameter übergeben oder auf einige globale Variablen verweisen).
quelle
Sie könnten so etwas tun, um den gewünschten Effekt zu erzielen:
Es hört sich jedoch so an, als würden Sie dieses Include wie eine Art Funktionsaufruf verwenden (Sie erwähnen, dass Sie es wiederholt mit verschiedenen Argumenten aufrufen).
Warum verwandeln Sie es in diesem Fall nicht in eine reguläre Funktion, die einmal enthalten und mehrmals aufgerufen wird?
quelle
include("myFile.php?id=$somevar");
identisch?include("myFile.php?...
nicht wie vorgesehen.Ein Include ist wie eine Code-Einfügung. Sie erhalten in Ihrem enthaltenen Code genau die gleichen Variablen, die Sie in Ihrem Basiscode haben. So können Sie dies in Ihrer Hauptdatei tun:
Und in "myFile.php":
Dies wird Folgendes ausgeben:
quelle
Wenn Sie dieses Include manuell in die PHP-Datei schreiben möchten, ist die Antwort von Daff perfekt.
Wenn Sie die ursprüngliche Frage stellen müssen, finden Sie hier eine kleine einfache Funktion, um dies zu erreichen:
?>
Ich benutze diese variable Variablenkonstruktion sehr oft.
quelle
Schließen Sie in die von Ihnen eingeschlossene Datei das HTML in eine Funktion ein.
Fügen Sie die Datei in die Datei ein, in die sie aufgenommen werden soll, und rufen Sie dann die Funktion mit den gewünschten Parametern auf.
quelle
Ich weiß, dass dies eine Weile her ist, aber ich frage mich, ob der beste Weg, dies zu handhaben, die Verwendung der be-Sitzungsvariablen ist.
In Ihrer myFile.php hätten Sie
Und in der aufrufenden Datei
Würde dies die "vorgeschlagene" Notwendigkeit umgehen, den gesamten Prozess zu funktionalisieren?
quelle
Ich bin darauf gestoßen, als ich Ajax-Formulare erstellt habe, bei denen ich mehrere Feldsätze einbinde. Nehmen Sie zum Beispiel eine Bewerbung. Ich beginne mit einem professionellen Referenzsatz und habe eine Schaltfläche mit der Aufschrift "Add More". Dies führt einen Ajax-Aufruf mit einem $ count-Parameter durch, um den Eingabesatz erneut einzuschließen (Name, Kontakt, Telefon usw.). Dies funktioniert beim Aufruf der ersten Seite einwandfrei, da ich Folgendes mache:
Der Benutzer drückt eine Taste, die einen Ajax-Aufruf ausführt.
Dann habe ich in der Datei reference.php etwas wie:ajax('references.php?count=1');
Ich habe auch andere dynamische Includes wie dieses auf der gesamten Site, die Parameter übergeben. Das Problem tritt auf, wenn der Benutzer auf Senden drückt und ein Formularfehler auftritt. Um nun keinen Code zu duplizieren, um die zusätzlichen Feldsätze einzuschließen, die dynamisch enthalten waren, habe ich eine Funktion erstellt, die das Include mit den entsprechenden GET-Parametern einrichtet.
Die Funktion sucht nach Abfrageparametern und fügt sie automatisch der Variablen $ _GET hinzu. Dies hat für meine Anwendungsfälle ziemlich gut funktioniert.
Hier ist ein Beispiel auf der Formularseite, wenn es aufgerufen wird:
Nur ein weiteres Beispiel für die dynamische Einbeziehung von GET-Parametern, um bestimmte Anwendungsfälle zu berücksichtigen. Hoffe das hilft. Bitte beachten Sie, dass dieser Code nicht vollständig ist, aber dies sollte ausreichen, damit jeder für seinen Anwendungsfall ziemlich gut anfängt.
quelle
Ihre Frage ist nicht ganz klar, aber wenn Sie möchten umfassen die PHP - Datei (fügen Sie die Quelle dieser Seite zu verkaufen), müssen Sie nur noch auf folgende Arten tun:
Solange die Variable in der Datei myFile.php $ someVar heißt
quelle
Ich war in der gleichen Situation und musste eine Seite durch Senden einiger Parameter einschließen ... Aber in Wirklichkeit wollte ich die Seite umleiten ... wenn dies bei Ihnen der Fall ist, lautet der Code:
quelle
Wenn sich jemand anders mit dieser Frage befasst
include('somepath.php');
und diese Datei eine Funktion enthält, muss dort auch die Variable deklariert werden. Die Aufnahme von$var=$var;
wird nicht immer funktionieren. Versuchen Sie Folgendes auszuführen:one.php:
two.php:
quelle
Sie können
$GLOBALS
dieses Problem auch verwenden , um es zu lösen.quelle
Der einfachste Weg, dies zu tun, ist so
index.php
second.php
Sie können Variablen freigeben, da Sie 2 Dateien einschließen, indem Sie "include" verwenden.
quelle
Mach das:
Und fügen Sie Ihrer
insert.php
Datei hinzu:quelle