Как передать значение переменной php в jquery

У меня есть переменная php:

$name_of_current_page

который у меня есть в моем представлении, и я хочу сделать значение доступным для jquery. Лучший способ сделать это следующим образом:

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

});

Ответ 1

Это действительно зависит от того, используете ли вы какой-то механизм шаблонов.

  • Если вы используете простой PHP, единственным вариантом для вас является echo переменная:

    var current page = "<?php echo $your_var; ?>";
    
  • Twig engine:

    var current page = "{{ your_var }}";
    
  • Smarty и RainTPL двигатели:

    var current page = "{$your_var}";
    

Как вы можете видеть, существуют и другие способы. Все они отлично работают. Это зависит от того, как вы хотите писать и организовывать свой код. Я лично использую Twig и считаю это очень простым, быстрым и простым.

Кроме того, как указывали другие, вы можете делать вызовы AJAX на сервере и извлекать такие переменные. Я нахожу этот метод трудоемким, неэффективным и небезопасным. Если вы выберете этот метод, вы будете отправлять запросы на script. Все смогут отправлять/получать запросы на этот script, который открывает ваши двери для некоторых ботов и DoS/DDoS-атак.

Ответ 2

var текущая страница= "";

Я не думаю, что у вас могут быть пробелы в переменной. (Я могу ошибаться).

В любом случае, чтобы упростить код, я только что сделал его немного.

$name_of_current_page = "HomePage";

И для Javascript;

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

Это должно быть так.

Ответ 3

document.title должен предоставить вам то, что вам нужно. Подобные вещи либо запрашивают DOM, либо Ajax imho.

Я считаю, что лучше всего разделять слои, а не смешивать презентацию и контроллер с переполненным кодом html/php.

Ответ 4

В первую очередь, что вы спросите, это обычный способ заполнения кода на стороне клиента, но этот будет загружаться при загрузке страницы, если вы хотите запустить его в режиме реального времени после загрузки страницы, вы должны использовать ajax, причина в том, как вы будете общаться со сценариями на стороне сервера, не является возможным jquery или javascript загружать php vars в live, как только страница была загружена.