Wie übergebe ich den PHP-Variablenwert an die jquery-Funktion?

Lesezeit: 5 Minuten

Ich habe dieses JQuery-Skript im Ordner WordPress /js und muss einige Werte ändern, die ich in der Datenbank speichere.

$( "#slider-range2" ).slider({
    range: true,
    min: 18,
    max: 90,
    values: [ 35, 50 ],
    slide: function( event, ui ) {
        $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
    }
});
$( "#amount2" ).val( $( "#slider-range2" ).slider( "values", 0 ) + "-" + $( "#slider-range2" ).slider( "values", 1 ) );

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.

Benutzer-Avatar
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:

<?php header('Content-type: text/javascript'); ?>
... // your regular js code  here
values: <?php echo $var1 ?> , <?php echo $var2 ?>
...

Jetzt können Sie auf Ihrer Seite verwenden:

<script type="text/javascript" src="https://stackoverflow.com/questions/7611420/yourfile.js.php">

  • 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.

    – Wyzard

    30. September 2011 um 15:16 Uhr


Ich würde sagen du machst es einfach so:

$( "#slider-range2" ).slider({
    range: true,
    min: 18,
    max: 90,
    values: [ <?php echo $value1; ?>, <?php echo $value2; ?> ],
    slide: function( event, ui ) {
        $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
  }

});

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};

$( "#slider-range2" ).slider({     
   range: true,     
   min: 18,
   max: 90,
   values: myValues(),
   slide: function( event, ui ) {
       $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
   } 
}); 
$( "#amount2" ).val( $( "#slider-range2" ).slider( "values", 0 ) + "-" + $( "#slider-range2" ).slider( "values", 1 ) ); 

Wiederholen Sie es einfach so.

$( "#slider-range2" ).slider({
    range: true,
    min: 18,
    max: 90,
    values: <?php echo $your_variable ?> ,
    slide: function( event, ui ) {
        $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
    }
});

Benutzer-Avatar
TJ Crowder

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.

Benutzer-Avatar
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.

1174870cookie-checkWie übergebe ich den PHP-Variablenwert an die jquery-Funktion?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy