So übergeben Sie den Wert der PHP-Variablen an jquery

Lesezeit: 3 Minuten

Benutzeravatar von user1592380
Benutzer1592380

Ich habe eine PHP-Variable:

$name_of_current_page

die ich in meiner Ansicht verfügbar habe, und ich möchte den Wert für jquery verfügbar machen. Geht man am besten so vor?

$(document).ready(function () {
            var current page = "<?php echo $name_of_current_page; ?>" ;

});

  • Ja. Zumindest das einfachste. Sie könnten dies zu kompliziert machen, indem Sie eine AJAX-Anfrage an den Server für die Daten senden und dann Ihre Variable auf diese Weise laden.

    – Michael Reis

    5. Juni 2013 um 18:04 Uhr


  • Vielleicht nicht das Beste, aber funktioniert gut 🙂

    – PiLHA

    5. Juni 2013 um 18:05 Uhr

  • mögliches Duplikat von How To Pass a PHP Variable To Javascript

    – Michael Irigoyen

    6. Juni 2013 um 1:53 Uhr

Benutzeravatar von tftd
tftd

Es hängt wirklich davon ab, ob Sie eine Art Template-Engine verwenden.

  1. Wenn Sie einfaches PHP verwenden, ist die einzige Option für Sie echo Die Variable:

    var current page = "<?php echo $your_var; ?>";
    
  2. Zweig Motor:

    var current page = "{{ your_var }}";
    
  3. Schlau und RainTPL Motoren:

    var current page = "{$your_var}";
    

Wie Sie sehen können, gibt es andere Möglichkeiten. Alle von ihnen funktionieren gut. Es hängt wirklich davon ab, wie Sie Ihren Code schreiben und organisieren möchten. Ich persönlich benutze Twig und finde es wirklich einfach, schnell und unkompliziert.

Wie andere bereits angemerkt haben, können Sie auch AJAX-Aufrufe an den Server ausführen und die Variablen so abrufen. Ich finde diese Methode zeitaufwändig, ineffizient und unsicher. Wenn Sie diese Methode wählen, senden Sie Anforderungen an ein Skript. Jeder wird in der Lage sein, Post/Get-Anfragen an dieses Skript zu senden, was Ihnen einige Bots und DoS/DDoS-Angriffe auf die Schliche stellt.

  • Zu sagen, dass die Verwendung von AJAX Ihre Türen für Bots und DoS öffnet, ist vergleichbar mit der Aussage, dass das Bereitstellen von irgendetwas im Internet die Türen öffnet. Dies ist zwar sachlich richtig, aber es gibt viele Gründe, AJAX zu verwenden, um Daten in Javascript zu ziehen. Jede größere Website, IDK wie Google, Facebook, et al. macht dies. Eine einfache index.php mit öffnet ihn für DoS-Angriffe. Wenn sein Webservice richtig gestaltet ist, muss er sich nicht (so sehr) Sorgen machen, dass jemand an seine Daten kommt.

    – Michael Reis

    5. Juni 2013 um 19:03 Uhr


  • @MichaelRice versteh mich nicht falsch – die Verwendung von AJAX ist großartig. Aber es wirft einige Probleme auf. Es sollte also mit Bedacht eingesetzt werden. Und der Vergleich von Google, Facebook usw. mit einer wahrscheinlich kleinen bis mittelgroßen Website ist falsch. Google kann es sich leisten, diese Dienste öffentlich zu machen, da sie über unbegrenzte Systemressourcen verfügen und Bots/DoS/DDoS auf einen Blick handhaben können, während kleine bis mittlere Websites einfach offline gehen.

    – tftd

    5. Juni 2013 um 19:11 Uhr


Var aktuelle Seite = “” ;

Ich glaube nicht, dass Sie Leerzeichen in einer Variablen haben können. (Ich könnte falsch liegen).

Wie auch immer, um Ihren Code zu vereinfachen, habe ich ihn nur leicht überarbeitet.

$name_of_current_page = "HomePage";

Und für das Javascript;

var currentPage = "<?= $name_of_current_page; ?>";

Das sollte es sein.

  • Sie können Leerzeichen in Ihren Variablen haben. Abgesehen von den PHP-Tags ist dies der richtige Weg. Sie könnten besser keine kurzen Tags mit PHP verwenden. Anstelle von “

    – Rens Tillmann

    5. Juni 2013 um 18:12 Uhr


  • @RensTillmann Einiges von dem, was ich gefunden habe, deutet darauf hin, dass es sich um die kurzen PHP-Tags (<? und ?>), die entfernt werden, obwohl sie kurz sind Echo Stichworte (<?= und ?>) bleiben. Haben Sie einen Link zu einer offiziellen Ressource?

    – Iskata

    5. Juni 2013 um 18:19 Uhr

  • Richtig, habe die Quelle nicht gut genug gelesen: php.net/~derick/meeting-notes.html – (Seit PHP 5.4.0 ist

    – Rens Tillmann

    5. Juni 2013 um 19:02 Uhr


  • @RensTillmann Danke, dass du das für mich geklärt hast. Ich wusste nicht, dass Sie Leerzeichen in Javascript a var haben können. 😛

    – Dhamesh Makwana

    5. Juni 2013 um 20:01 Uhr

document.title sollte Ihnen geben, was Sie brauchen. Solche Dinge fragen entweder das DOM oder Ajax imho ab.

Ich finde es am besten, Ebenen zu trennen und Präsentation und Controller nicht mit gespicktem HTML/PHP-Code zu mischen.

  • $name_of_current_page müssen nicht bedeutet document.title.

    – Furas

    5. Juni 2013 um 18:10 Uhr

  • @furas was könnte es noch bedeuten?

    – Zach Leighton

    5. Juni 2013 um 18:14 Uhr

  • <h1>name_of_current_page</h1> oder kann in vielen anderen Tags als verwendet werden title="..." oder alt=".." aus SEO-Gründen 😉

    – Furas

    5. Juni 2013 um 18:15 Uhr


  • Danke, aber in meinem Fall ist es nicht der Seitentitel

    – Benutzer1592380

    6. Juni 2013 um 15:18 Uhr

Zunächst einmal ist das, was Sie fragen, ein normaler Weg, um clientseitigen Code zu füllen, aber dieser wird beim Laden der Seite geladen. Wenn Sie ihn nach dem Laden der Seite live ausführen möchten, müssen Sie Ajax verwenden, weil dies der Fall ist Die Art und Weise, wie Sie mit den serverseitigen Skripten kommunizieren, ist nicht möglich. Jquery oder Javascript laden die PHP-Variablen live, sobald die Seite geladen wurde

1404980cookie-checkSo übergeben Sie den Wert der PHP-Variablen an jquery

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

Privacy policy