Die Jquery-Dokumentation ist mir nicht klar. Werte, die ich ändern muss, sind [35 , 50]. Diese Werte werden in der Datenbank gespeichert. Wie kann ich das aus der js-Datei machen? Wie kann ich einen PHP-Variablenwert an die jquery-Funktion übergeben?
Vielen Dank.
JRL
Angenommen, Sie möchten die externe js-Datei behalten und nicht in Ihr PHP-Skript einbetten, lassen Sie PHP zwei globale js-Variablen schreiben und ändern Sie die js-Datei, um stattdessen diese zu verwenden.
zB in php:
echo "<script>var val1 = $var1; var val2 = $var2;</script>";
und in Ihrer js-Datei:
values: [val1, val2]
Aber wenn Sie Ihre js-Datei stattdessen in eine php-Datei ändern können, können Sie so etwas tun:
Genau das, was ich dachte. Meine einzige Änderung wäre, die JS-Variablen von zu ändern val1 und val2 zu etwas viel Spezifischerem, wie slider_range2_val1 (und 2), um das Risiko zu minimieren, sie versehentlich an anderer Stelle im JS-Code zu überschreiben.
– Brandstifter
30. September 2011 um 14:26 Uhr
Besser noch, fügen Sie sie in ein Modul ein, genau wie Sie es mit einer Klasse tun würden. Sie könnten den PHP-Code ein Objekt namens generieren lassen mymodule.config enthält a slider_values -Eigenschaft sowie alle anderen konfigurierbaren Eigenschaften, die Sie benötigen.
wobei $value1 und $value2 natürlich die Werte sind, die Sie aus der Datenbank erhalten.
-edit- oder was der andere gesagt hat, Sie können eine PHP-For-Schleife verwenden, um die Größe Ihres Arrays auf diese Weise dynamisch zu machen 🙂
@alejoabella Natürlich kannst du das, ändere einfach die Dateiendung.
– Brandstifter
30. September 2011 um 14:02 Uhr
Vielleicht könnten Sie dann auch in Betracht ziehen, eine PHP-Webmethode zu erstellen und diese aus Ihrem JQuery-Code aufzurufen?
– Daniel van Dommele
30. September 2011 um 14:06 Uhr
@mblase75 hat ganz vergessen, dass sich der Browser nicht um die Erweiterung kümmert. Allerdings wird die Datei nicht wie ein normales JS zwischengespeichert, aber die PHP ist dynamisch?
– Alistair Laing
30. September 2011 um 14:07 Uhr
@alejoabella: Sie können PHP-Code nur in einem PHP-Dokument ausführen. Die einzige andere Möglichkeit, die mir einfällt, besteht darin, die Werte als globale JS-Variable oben in Ihrem PHP/HTML-Dokument festzulegen.
– Brandstifter
30. September 2011 um 14:11 Uhr
@ mblase75 Und das ist ein besserer Weg, weil es den Großteil des JS-Codes in einer statischen Datei belässt, die zwischengespeichert werden kann. Das Ausführen des Skripts selbst durch den PHP-Interpreter bedeutet, dass es jedes Mal neu generiert und erneut heruntergeladen werden muss.
– Wyzard
30. September 2011 um 14:18 Uhr
PHP-Code wird auf dem Server ausgeführt und jQuery-Code wird im Browser ausgeführt, sodass Sie PHP-Variablen nicht direkt an jQuery-Funktionen übergeben können, da dies nicht direkt möglich ist Anruf jQuery-Funktionen aus PHP-Code.
Was Sie tun müssen, ist, den PHP-Code JavaScript-Code generieren zu lassen, der, wenn er später im Browser ausgeführt wird, einige JavaScript-Variablen auf die gewünschten Werte setzt. Beispielsweise könnten Sie den PHP-Code dazu bringen, a zu generieren <script> -Element in der Kopfzeile der Seite, das JavaScript-Zuweisungsanweisungen enthält, und ändern Sie dann Ihre .js Datei so, dass sie sich anstelle der Nummern 35 und 50 auf diese Variablen bezieht.
Sie können auch PHP-Code in Ihre einfügen .js Datei selbst, wie andere Antworten vorgeschlagen haben, aber nur, wenn es sich tatsächlich um ein PHP-Skript und nicht um eine statische Datei handelt. Meine Empfehlung wäre, den Großteil des JavaScript-Codes in statischen Dateien aufzubewahren (damit Browser sie zwischenspeichern können) und PHP nur Zuweisungen für einige globale Variablen generieren zu lassen, auf die sich der Rest der Skripte beziehen kann.
Nun, Sie könnten eine Ajax-Anfrage an den Server senden, bevor Sie Ihren Schieberegler definieren.
z.B. var myValues = function(){ // Ajax-Aufruf an PHP-Skript ausführen, das Werte zurückgibt Rückgabewert};
Es kommt auf den Wert an. Wenn es sich um einen einfachen numerischen Wert handelt, können Sie ihn einfach ausgeben. Wenn es sich um einen komplexen oder einen String handelt, können Sie ihn im JSON-Format über echoen json_encode (seit JSON ist eine Teilmenge der JavaScript-Literal-Syntax), da dies Escapezeichen und dergleichen für Sie übernimmt.
Beachten Sie in beiden Fällen, dass PHP ausgeführt wird auf dem Server da die Seitenanforderung erfüllt ist und JavaScript sie verwendet später auf der Client-Seite.
Ryre
Einer meiner Lieblingstricks ist, Ihre Javascript-Datei somename.js.php zu benennen und dann einen Javascript-Header zu senden:
Header("content-type: application/x-javascript");
Jetzt können Sie die volle PHP-Funktionalität (einschließlich DB-Aufrufe) in Ihrem Javascript verwenden.
Sie sollten jedoch sicherstellen, dass Sie Ihre Datei ordnungsgemäß auf dem Server zwischenspeichern, damit sie nicht auf jeder Seite heruntergeladen wird. Etwas wie:
header("Expires: Sat, 26 Jul 2012 05:00:00 GMT")
Als Faustregel behalte ich im Allgemeinen alle sich ändernden JS-Variablen in der Haupt-PHP-Datei und übergebe sie an Funktionen, die in einer externen JS-Datei deklariert sind.
11748700cookie-checkWie übergebe ich den PHP-Variablenwert an die jquery-Funktion?yes