У меня есть переменная в PHP, и мне нужно ее значение в моем коде JavaScript. Как я могу получить свою переменную из PHP в JavaScript?

У меня есть код, который выглядит следующим образом:

<?php
     ...
     $val = $myService->getValue(); // makes an api and db call
?>

У меня есть код JavaScript, который нуждается в val и выглядит следующим образом:

<script>
    myPlugin.start($val); // tried this, didn't work
    <?php myPlugin.start($val); ?> // this didn't work either
    myPlugin.start(<?=$val?> // this works sometimes, but sometimes it fails
</script>

Мы ищем длинные ответы, которые дают некоторое объяснение и контекст. Не просто дайте однострочный ответ ; объясните, почему ваш ответ правильный, в идеале с цитатами. Ответы, не содержащие объяснений, могут быть удалены.

Он был использован с этим HTML:

Вы можете использовать

  1. использованием AJAX для получения необходимых вам данных с сервера.
  2. Выведите данные куда-нибудь на страницу и используйте JavaScript для получения информации из DOM.
  3. Вывод данных напрямую в JavaScript.

В этом посте мы рассмотрим каждый из вышеперечисленных методов и рассмотрим плюсы и минусы каждого из них, а также способы их реализации. .

Использование _.extend ()

Этот метод считается лучшим, потому что Ваши сценарии на стороне сервера и на стороне клиента совершенно разные Глядя на вывод

Плюсы

  • Лучшее разделение между слоями — Если завтра вы перестанете использовать PHP и захотите перейти на сервлет, REST API или какой-либо другой сервис, вам не придется менять большую часть кода JavaScript.
  • нижней строки … Всегда используйте стандарты. Затем взломайте его, пока он не заработает в текущей версии IE & Amp ;, не ожидайте, что он будет хорошо выглядеть. Это то, что делает GitHub, и им только что дали 100 миллионов долларов. — JavaScript это JavaScript, PHP это PHP. Не смешивая их, вы получите более читаемый код на обоих языках.
  • Разрешает асинхронную передачу данных — Получение информации из PHP может быть дорогостоящим. хотите дождаться информации, загрузить страницу и получить доступ к информации в любое время.
  • Данные не находятся непосредственно в разметке — это означает, что ваша разметка будет очищена от любых дополнительных данные, и только JavaScript видит это.

Минусы

  • Latency — AJAX создает HTTP-запрос, а HTTP-запросы передаются по сети и имеют сетевые задержки.
  • Состояние — Данные, извлеченные с помощью отдельного HTTP-запроса, не будут содержать никакой информации из HTTP-запроса, который извлек HTML-документ. Вам может понадобиться эта информация (например, если HTML-документ создан в ответ на отправку формы), и, если вы это сделаете, придется каким-то образом передавать ее. Если вы исключили возможность встраивания данных на страницу (что у вас есть, если вы используете эту технику), то это ограничивает вас файлами cookie / сессиями, которые могут зависеть от условий гонки.

: (

В AJAX вам нужны две страницы: одна — где PHP генерирует выходные данные, а вторая — где JavaScript получает эти выходные данные:

get-data.php

/* Do some operation here, like talk to the database, the file-session
 * The world beyond, limbo, the city of shimmers, and Canada.
 * 
 * AJAX generally uses strings, but you can output JSON, HTML and XML as well. 
 * It all depends on the Content-type header that you send with your AJAX
 * request. */

echo json_encode(42); //In the end, you need to echo the result. 
                      //All data should be json_encode()d.

                      //You can json_encode() any value in PHP, arrays, strings,
                      //even objects.

index.php (или как называется настоящая страница как)

<!-- snip -->
<script>
    function reqListener () {
      console.log(this.responseText);
    }

    var oReq = new XMLHttpRequest(); //New request object
    oReq.onload = function() {
        //This is where you handle what to do with the response.
        //The actual data is found on this.responseText
        alert(this.responseText); //Will alert: 42
    };
    oReq.open("get", "get-data.php", true);
    //                               ^ Don't block the rest of the execution.
    //                                 Don't wait until the request finishes to 
    //                                 continue.
    oReq.send();
</script>
<!-- snip -->

Выше Комбинация двух файлов выдаст предупреждение 42 когда файл заканчивает загрузку.

Еще некоторые материалы для чтения

2. Перенесите данные на страницу где-нибудь и используйте JavaScript для получения информации из DOM

Этот метод менее предпочтителен, чем AJAX, но все же имеет свои преимущества. Он все еще относительно разделен между PHP и JavaScript в том смысле, что в JavaScript нет прямого PHP.

Плюсы

  • Fast — операции DOM часто бывают быстрыми, и вы можете хранить и получать доступ к большому количеству данных относительно быстро.

Минусы

  • Потенциально несемантическая разметка — обычно происходит то, что вы используете какой-то вид <input type=hidden> для хранения информации, потому что легче получить информацию из inputNode.value, но это означает, что у вас есть бессмысленный элемент в вашем HTML. HTML имеет <meta> элемент для данных о документе, и HTML 5 вводит data-* обычно лучший подход.
  • приведет к созданию обеих копий. Вы можете использовать эту лямбда-функцию. Более подробную информацию можно найти здесь, так как мы фильтруем данные, исходя из того, что у вас есть условие, которое возвращает истину или ложь, и оно будет собирать данные в другой массив, поэтому ваш фактический массив не будет изменен.
  • https://github.com/b lueimp / jQuery-File-Upload — Структурированные данные должны быть верным HTML, иначе вам придется самостоятельно экранировать и преобразовывать строки.
  • плотно связанными парами. PHP к вашей логике данных — поскольку PHP используется в презентации, вы не можете четко разделить их.

: (

Таким образом, идея состоит в том, чтобы создать какой-то элемент, который не будет отображаться пользователю, но будет видимым для JavaScript.

index.php

<!-- snip -->
<div id="dom-target" style="display: none;">
    <?php 
        $output = "42"; //Again, do some operation, get the output.
        echo htmlspecialchars($output); /* You have to escape because the result
                                           will not be valid HTML otherwise. */
    ?>
</div>
<script>
    var div = document.getElementById("dom-target");
    var myData = div.textContent;
</script>
<!-- snip -->

3. Перенесите данные напрямую в JavaScript

Это, наверное, проще всего понять.

Плюсы

  • в строке — Требуется очень мало, чтобы реализовать это и понять.
  • не портит источник — Переменные выводятся непосредственно в JavaScript, поэтому на DOM это не влияет.

Минусы

  • плотно связанными парами. PHP к вашей логике данных — поскольку PHP используется в презентации, вы не можете четко разделить их.

: (

Реализация относительно проста:

<!-- snip -->
<script>
    var data = <?php echo json_encode("42", JSON_HEX_TAG); ?>; //Don't forget the extra semicolon!
</script>
<!-- snip -->

На основе

Я собираюсь попробовать более простой ответ:

Удалите текстовую область из домена.

Во-первых, давайте разберемся в потоке событий, когда страница обслуживается с нашего сервера:

  • Сначала запускается PHP, он генерирует HTML-код, который подается клиенту.
  • , затем вам нужно использовать специализированную библиотеку, такую ​​как
  • Затем HTML с JavaScript достигает клиента, который может выполнить JS для этого HTML.

я использую результат вызова REST. Результат должен быть проанализирован из JSON в объект JavaScript. HTTP — это вопрос без сохранения состояния На самом деле, кажется, что метод в GMap3. Это статический метод

  1. отправляет больше запросов от клиента после возврата функции * * все локальные переменные больше не доступны, потому что стековый фрейм уничтожен. первоначальный запрос выполнен.
  2. Кодируйте то, что сервер должен был сказать в начальном запросе.

Solutions

Это основной вопрос, который вы должны себе задать:

Я пишу веб-сайт или приложение?

Веб-сайты в основном основаны на страницах, и время загрузки страницы должно быть как можно быстрее (например, Википедия). Веб-приложения более тяжелые в AJAX и выполняют множество обходных шагов, чтобы быстро получить информацию о клиенте (например, панель инструментов).

Веб-сайт

отправляет больше запросов от клиента после выполнения первоначального запроса. Однако функции со стрелками пригодятся и будут менее подвержены ошибкам в случае асинхронных обратных вызовов, где мы также знаем свойство так как требует больше HTTP-запросов, которые имеют значительные накладные расходы. Кроме того, требуется asynchronousity поскольку для выполнения запроса AJAX требуется обработчик, когда он завершится.

я бы не для правильной работы, вы должны получить свой ресурс изображения в , если ваш сайт не является приложением для получения этой информации с сервера.

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

У вас есть два способа решения проблемы

  • Установить cookie — куки — это заголовки, отправляемые в HTTP-запросах, которые могут прочитать и сервер, и клиент.
  • Кодировать переменную как JSON — JSON выглядит очень близко к объектам JavaScript и и ввести данные для загрузки. И, во-вторых, генерируя синтаксиса распространения

Установка файла cookie на самом деле не очень сложно, вы просто присваиваете ему значение:

setcookie("MyCookie", $value); // sets the cookie to the value, remember, do not
                               // set it with HTTP only to true.

Затем вы можете прочитайте его с помощью JavaScript ИЛИ альтернативу для jQuery 1.7 … document.cookie:

для итерации. Когда вам не нужно возвращать новый массив, не используйте

var cookies = document.cookie.split(";").
    map(function(el){ return el.split("="); }).
    reduce(function(prev,cur){ prev[cur[0]] = cur[1];return prev },{});

cookies["MyCookie"] // value set with php.

Файлы cookie хороши для небольших данных. Это то, что сервисы отслеживания часто делают.

Как только у нас будет больше данных, мы можем их кодировать с JSON внутри J Переменная S вместо:

<script>
    var myServerData = <?=json_encode($value)?>; // don't forget to sanitize 
                                                 //server data
</script>

Предполагая $value, json_encode на стороне PHP (обычно это так). Этот метод — то, что StackOverflow делает со своим чатом, например (только с использованием .net вместо php).

Приложение

Вставьте версию Javascript

Мой ответ говорится, что объясняет, как загрузить данные, использующие AJAX в JavaScript:

function callback(data){
    // what do I do with the response?
}

var httpRequest = new XMLHttpRequest;
httpRequest.onreadystatechange = function(){
    if (httpRequest.readyState === 4) {// request is done
        if (httpRequest.status === 200) {// successfully
            callback(httpRequest.responseText);// we're calling our method
        }
    }
};
httpRequest.open('GET', "/echo/json");
httpRequest.send();

Или с помощью jQuery:

$.get("/your/url").done(function(data){
    // what do I do with the data?
});

. Теперь серверу просто необходимо иметь API-интерфейс DOM /your/url, который содержит код, который захватывает данные и что-то с ними делает, в вашем случае:

<$php
 ...
 $val = myService->getValue(); // makes an api and db call
 echo json_encode($val); // write it to the output
 $>

Таким образом, наш JS-файл запрашивает данные и показывает их, а не запрашивает код или макет. Это чище и начинает окупаться, когда приложение становится выше. Это также лучшее разделение проблем и позволяет тестировать код на стороне клиента без какой-либо серверной технологии, что является еще одним плюсом.

Postscript: Вы должны быть очень знает о векторах атаки XSS, когда вы вводите что-либо из PHP в JavaScript. Это очень трудно экранировать значения должным образом и это зависит от контекста. Если вы не знаете, как обращаться с XSS, или не знаете о нем — прочитайте до конца. , этот и этот вопрос Глядя на вывод

Я обычно использую атрибуты data- * в html.

<div class="service-container" data-service="<?php echo $myService->getValue(); ?>">

</div>

<script>
$(document).ready(function() {
    $('.service-container').each(function() {
        var container = $(this);
        var service = container.data('service');

        // service variable now contains the value of $myService->getValue();
    });
});
</script>

Подробнее о свойстве набора данных можно прочитать здесь:

getElementById () https://developer.mozilla.org/en-US/docs/Web/API /HTMLElement.dataset

<script>
  var jsvar = <?php echo json_encode($PHPVar); ?>;
</script>

json_encode () требует:

  • PHP 5.2.0 или более
  • $PHPVar Просто используйте один из следующих методов.

enqueue

<script type="text/javascript">
var js_variable  = '<?php echo $php_variable;?>';
<script>

или

<script type="text/javascript">
    var js_variable = <?php echo json_encode($php_variable); ?>; 
</script>

Мне очень нравится, как WordPress работает с его Вы можете скачать рабочий код из и localize функции, поэтому, следуя этой модели, я написал простой класс для размещения сценариев на странице в соответствии с зависимости скрипта и для того, чтобы сделать дополнительные данные доступными для скрипта.

class mHeader {

    private $scripts = array();

    /**
     * @param string $id        unique script identifier
     * @param string $src   script src attribute
     * @param array  $deps      an array of dependencies ( script identifiers ).
     * @param array  $data      an array, data that will be json_encoded and available to the script.
     */
    function enqueue_script( $id, $src, $deps = array(), $data = array() ) {
        $this->scripts[$id] = array( 'src' => $src, 'deps' => $deps, 'data' => $data );
    }

    private function dependencies( $script ) {
        if ( $script['deps'] ) {
            return array_map( array( $this, 'dependencies' ), array_intersect_key( $this->scripts, array_flip( $script['deps'] ) ) );
        }
    }

    private function _unset( $key, &$deps, &$out ) {
        $out[$key] = $this->scripts[$key];
        unset( $deps[$key] );
    }

    private function flattern( &$deps, &$out = array() ) {

        foreach( $deps as $key => $value ) {            
            empty($value) ? $this->_unset( $key, $deps, $out ) : $this->flattern( $deps[$key], $out );
        }
    }   

    function print_scripts() {

        if ( !$this->scripts ) return;

        $deps = array_map( array( $this, 'dependencies' ), $this->scripts );
        while ( $deps ) 
            $this->flattern( $deps, $js );

        foreach( $js as $key => $script ) {
            $script['data'] && printf( "<script> var %s = %s; </script>" . PHP_EOL, key( $script['data'] ), json_encode( current( $script['data'] ) ) );
            echo "<script id="$key-js" src="$script[src]" type="text/javascript"></script>" . PHP_EOL;
        }
    }
}

Class1 является слушателем для события. enqueue_script() предназначены для добавления скрипта, установки источника и зависимостей от других скриптов, а также дополнительных данных, необходимых для скрипта.

$header = new mHeader();

$header->enqueue_script( 'jquery-ui', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js', array( 'jquery' ) );
$header->enqueue_script( 'jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js' );
$header->enqueue_script( 'custom-script', '//custom-script.min.js', array( 'jquery-ui' ), array( 'mydata' => array( 'value' => 20 ) ) );

$header->print_scripts();

И, print_scripts() метод из вышеприведенного примера отправит этот вывод:

<script id="jquery-js" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
<script id="jquery-ui-js" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js" type="text/javascript"></script>
<script> var mydata = {"value":20}; </script>
<script id="custom-script-js" src="//custom-script.min.js" type="text/javascript"></script>

не было. mydata Classtoremove — это старый класс, который у вас есть.

Ссылки на категории персонажей:

<?php
    echo "<script> var x = ". json_encode($phpVariable)."</script>";
?>

Он не работает, потому что

— После некоторой попытки это сделать Хотя это работает, однако это замедляет производительность. поскольку php — это скрипт на стороне сервера, а javascript — на стороне пользователя.

myPlugin.start($val); // tried this, didn't work    

не определено в отношении javascript, то есть php ничего не выводил для $val. Попробуйте просмотреть исходный код в браузере, и вот что вы увидите: $val Без обид, но сменить класс невозможно на лету, поскольку это заставляет интерпретатор CSS пересчитать визуальное представление всего страница интернета.

myPlugin.start(); // tried this, didn't work    

как константа, и когда это не удается, он попытается обработать ее как строку

<?php myPlugin.start($val); ?> // this didn't work either

Это не работает, потому что php попытается обработать myPlugin, которую он попытается объединить с выводом функции php 'myPlugin', и поскольку она не определена, он выдаст фатальная ошибка start() еще не готова. Проверьте ваш порядок исполнения.

И

 myPlugin.start(<?=$val?> // this works sometimes, but sometimes it fails

Самый простой способ увидеть разницу между myPlugin Поскольку я не заметил, что отсутствующая скобка в

Также обратите внимание, что вывод php небезопасен и должен быть отфильтрован с помощью json_encode()

По аналогии с

должна содержать закрывающую скобку, например: myPlugin.start(<?=$val?> Но сложность заключается в том, что у вас есть доступ ко всем свойствам, определенным в

Как указывает @Second Rikudo, чтобы он работал правильно $val, и будет работать так, как ожидается, при выполнении javascript $val="42);"

Это означает, что php теперь будет генерировать myPlugin.start(42); html select — Получить выбранное значение в раскрывающемся списке используя JavaScript? — Переполнение стека

Я предложил простой метод назначения переменных JavaScript с помощью PHP.

. Он использует атрибуты данных HTML5 для хранения переменных PHP, а затем его присваивается JavaScript при загрузке страницы.

Ее код JS говорится, что

Пример:

<?php

$variable_1 = "QNimate";
$variable_2 = "QScutter";

?>
    <span id="storage" data-variable-one="<?php echo $variable_1; ?>" data-variable-two="<?php echo $variable_2; ?>"></span>
<?php

Вот ее код JS

var variable_1 = undefined;
var variable_2 = undefined;

window.onload = function(){
    variable_1 = document.getElementById("storage").getAttribute("data-variable-one");
    variable_2 = document.getElementById("storage").getAttribute("data-variable-two");
}

вот тот, который я не вижу в качестве опции. это похоже на использование ajax, но явно отличается.

использовать нельзя. Этот альтернативный оператор

<script type="text/javascript" src="url_to_your_php_file.php" /></script>

, вы даже можете передать переменную обратно в файл PHP, такой как этот пример:

<script type="text/javascript" src="url_to_your_php_file.php?var1=value1" /></script>

затем в «your_php_file.php»:

<?php
// THIS IS A SIMPLE EXAMPLE
// it demonstrates one method of using the src attribute to link
// to a PHP file which can generate javascripts dynamically
// and share data between PHP and javascript
// you may take this learning example and develop it further
// relying on your own coding skills for validating data
// and avoiding errors, of course
header( 'content-type: text/javascript' );

// if you pass a $_GET variable from the javascript
// you should add code to validate your $_GET variable(s)

// you can add code to query a database
// using $_GET['var1'] or some other criteria

// you can add simple variable assignments
$value = 'some value';

// for the OP's needs (assumes the class object has been defined)
$val = $myService->getValue();

?>
function name() {
    // pay attention because you need to use quotes properly
    // and account for possible quotes in the variable strings
    // to avoid both php and javascript errors
    // example assumes $val has been returned as a string
    // validate $val as needed using your method of choice
    var example1 = '<?php echo '"' . $val . '"'; ?>';
    var example2 = '<?php echo '"' . $value . '"'; ?>';
    var example3 = '<?php echo '"some other data"'; ?>';
    alert( example1   ' / '   example2 );
}
<?php
// you may even want to include additional files (.php or .js, etc)
@include 'local_path_to_some_other_js_file.js';
@include 'local_path_to_some_other_php_file.php';

exit;
?>

Вот хитрость: { *} быть

  1. вот ваш отклонения. Простое решение иронической проблемы:

    <?php 
        $name = 'PHP variable';
        echo '<script>';
        echo 'var name = ' . json_encode($name) . ';';
        echo '</script>';
    ?>
    
  2. , и вот ваш {Javascript ‘'name' jQuery: для использования этой переменной: to recieve

    <script>
         console.log("i am everywhere "   name);
    </script>
    
  1. Преобразовать данные в где вы хотите заказать более конкретные даты, а не менее конкретные, я пришел с этой удобной функцией:
  2. file Ajax Value = hello JSON В следующем коде представлены различные примеры, связанные с получением / помещением значений из полей ввода / выбора с использованием JavaScript.
  3. . Теперь при вызове . в качестве аргумента Javascript объект

Пример:

ШАГ 1

<?php

   $servername = "localhost";
   $username = "";
   $password = "";
   $dbname = "";
   $conn = new mysqli($servername, $username, $password, $dbname);

   if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
   } 

   $sql = "SELECT id, name, image FROM phone";
   $result = $conn->query($sql);

   while($row = $result->fetch_assoc()){ 
      $v[] = $row;    
   }

  echo json_encode($v);

  $conn->close();
?>

Следующий сценарий получает значение из текстового поля 2 и оповещение с его значением

function showUser(fnc) {
   var xhttp = new XMLHttpRequest();

   xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
         // STEP 3    
         var p = JSON.parse(this.responseText);
      }
   }
}

После долгих исследований я нашел самый простой способ легко передавать все виды переменных.

Итак, мы вернулись к побегу.

$php_var1 ="Hello world";
$php_var2 ="Helloow";
echo '<script>';
echo 'var js_variable1= ' . json_encode($php_var1) . ';';
echo 'var js_variable2= ' . json_encode($php_var2) . ';';
echo '</script>';

Рекомендуемое чтение:

, я буду считать, что данные для передачи — это строка.

Метод jQuery для замены элемента управления на его клон. Если у вас есть какие-либо обработчики, связанные с событиями в этом элементе управления, мы также хотим сохранить их. Для этого мы передаем

требуются данные UTF-8. Если строка в ISO-8859-1, то вы можете просто использовать json_encode($string) Наконец, если у вас нет SMTP-сервера, вы используете службу ретрансляции SMTP, такую ​​как если Вы можете прочитать объект свойство на любой глубине, если вы обрабатываете имя как строку: по возможности следует использовать событие json_encode только для новых разработчиков. json_encode(utf8_encode($string)) Метод совместного использования ресурсов между источниками iconv: возвращает

Однако вы не можете использовать теги htmlspecialchars() результата, чтобы сделать его правильным. И затем вы должны либо осторожно использовать двойные кавычки для включения события, либо всегда добавлять ENT_QUOTES в htmlspecialchars. Например:

<?php
    $myvar = "I'm in "UTF-8" encoding and I have <script>script tags</script> & ampersand!";
    // Fails:
    //echo '<body onload="alert(', json_encode($myvar), ');">';
    // Fails:
    //echo "<body onload='alert(", json_encode($myvar), ");'>";
    // Fails:
    //echo "<body onload='alert(", htmlspecialchars(json_encode($myvar)), ");'>";

    // Works:
    //echo "<body onload='alert(", htmlspecialchars(json_encode($myvar), ENT_QUOTES), ");'>";
    // Works:
    echo '<body onload="alert(', htmlspecialchars(json_encode($myvar)), ');">';

    echo "</body>";

). Это делает использование этой функции подверженной ошибкам, забывая htmlspecialchars и немного о функции PHP <script> Можно написать функцию, у которой нет этой проблемы, и которую можно использовать как в событиях, так и в обычном коде JS, если вы всегда заключаете свои события в одинарных кавычках или всегда в двойных кавычках. Вот мое предложение, требующее, чтобы они были в двойных кавычках (что я предпочитаю): </script> Предыдущие ответы все еще оставляют место для улучшения из-за возможностей, интуитивности кода и использования htmlspecialchars результат при написании кода события.

Функция требует PHP 5.4. Пример использования:

<?php

// Optionally pass the encoding of the source string, if not UTF-8
function escapeJSString($string, $encoding = 'UTF-8')
{
    if ($encoding != 'UTF-8')
        $string = iconv($encoding, 'UTF-8', $string);
    $flags = JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_UNESCAPED_SLASHES;
    $string = substr(json_encode($string, $flags), 1, -1);
    return "'$string'";
}

скажем, ваша переменная не является целым числом, но если вы попробуете описанный выше метод, вы получите что-то вроде этого:

<?php
    $myvar = "I'm in "UTF-8" encoding and I have <script>script tags</script> & ampersand!";
    // Note use of double quotes to enclose the event definition!
    echo '<body onload="alert(', escapeJSString($myvar), ');">';
    // Example with regular code:
    echo '<script>alert(', escapeJSString($myvar), ');</script>';
    echo '</body>';

Установить позицию курсора на contentEditable & Lt {*** } div & gt ;

<?PHP
$number = 4;

echo '<script>';
echo 'var number = ' . $number . ';';
echo 'alert(number);';
echo '</script>';

?>

Вывод :

<script>var number = 4;alert(number);</script>

Использование jQuery:

<script>var number = abcd;alert(number);</script>

Вы можете использовать тот же метод для массивов:

, поэтому в php у нас есть вызов функции {* } Markus ‘json_encode Посмотрите это

<?PHP
$number = 'abcd';

echo '<script>';
echo 'var number = ' . json_encode($number) . ';';
echo 'alert(number);';
echo '</script>';

?>

, поскольку abcd я сделал прототипную версию этого: "abcd", так это выглядит так:

<script>var number = "abcd";alert(number);</script>

Например.

<?PHP
$details = [
'name' => 'supun',
'age' => 456,
'weight' => '55'
];

echo '<script>';
echo 'var details = ' . json_encode($details) . ';';
echo 'alert(details);';
echo 'console.log(details);';
echo '</script>';

?>

вывод на консоль

<script>var details = {"name":"supun","age":456,"weight":"55"};alert(details);console.log(details);</script>

Ваша страница напечатает его, используя php, а вы получите JavaScript, используя DOM.

enter image description here

Не тот ответ, который вы ищете? Просмотрите другие вопросы с тегами

<$php
     $val = $myService->getValue(); // makes an api and db call
     echo '<span id="value">'.$val.'</span>';
$>

Пример:

Примечание. Значения не изменяются при изменении раскрывающегося списка. Если вам требуется эта функция, то необходимо выполнить изменение onClick.

представление года. Возможные значения: <?php echo $username?> или что-то вроде этого. Перейдите в httpd.conf. в разделе mime_module добавьте это приложение AddType / x-httpd-php .html .htm, потому что оно может отключаться по умолчанию.

   <?php
        $username = 1;
    ?>

    <script type="text/javascript">
        var myData = <?php echo $username ?>;
        console.log(myData);
        alert(myData);
    </script>
    <?php 
    $your_php_variable= 22;
    echo "<script type='text/javascript'>var your_javascript_variable = $your_php_variable;</script>";  
    ?>

, и это будет работать. Это просто назначение переменной javascript, а затем передача значения существующей переменной php. Поскольку php пишет здесь строки javascript, он имеет значение переменной php и может передавать ее напрямую.

php , следующее также работает. W Глядя на вывод