Я хочу значение переменной JavaScript, к которой я мог бы получить доступ, используя PHP. Я использую код ниже, но он не возвращает значение этой переменной в PHP.
// set global variable in javascript profile_viewer_uid = 1;
// php code $profile_viewer_uid=$_POST['profile_viewer_uid'];
это дает мне следующую ошибку:
A PHP Error was encountered Severity: Notice Message: Undefined index: profile_viewer_uid
Другой используемый мной PHP-код, который дает пустое значение
$profile_viewer_uid = "<script language=javascript>document.write(profile_viewer_uid);</script>
Когда я эхо, это ничего не показывает.
Вам нужно будет использовать JS для отправки URL-адреса с переменной в нем, например: http://www.site.com/index.php?uid=1
используя что-то подобное в JS:
window.location.href=”index.php?uid=1";
Затем в PHP-коде используйте $ _GET:
$somevar = $_GET["uid"]; //puts the uid varialbe into $somevar
Вот пример работы: Получить значение переменной javascript на той же странице.
<script> var p1 = "success"; </script> <?php echo "<script>document.writeln(p1);</script>"; ?>
Вы можете начать с изучения того, что такое Javascript и php. Javascript – это язык сценариев на стороне клиента, запущенный в браузере компьютера клиента, подключенного к веб-серверу, на котором выполняется php. Эти языки не могут общаться напрямую .
В зависимости от вашей цели вам нужно будет отправить запрос AJAX или отправить запрос на сервер и вернуть json / xml / html / любой ответ, который вам нужен, и вставить результат обратно в структуру DOM сайта. Я предлагаю Jquery, BackboneJS или любую другую инфраструктуру JS для этого. См. Документацию JQuery для примеров.
Если вам нужно передать php-данные в JS на том же сайте, вы можете эхо-данные передать в JS и превратить ваши php-данные с помощью json_encode () в JS.
<script type="text/javascript> var foo = <?php echo json_encode($somePhpVar); ?> </script>
Добавьте файл cookie с переменной javascript, к которой вы хотите получить доступ.
document.cookie="profile_viewer_uid=1";
Затем присоединяется к нему через php через
$profile_viewer_uid = $_COOKIE['profile_viewer_uid'];
PHP работает на сервере. Он выводит некоторый текст. Затем он перестает работать.
Текст отправляется клиенту (браузеру). Затем браузер интерпретирует текст как HTML и JavaScript.
Если вы хотите получить данные с JavaScript на PHP, вам нужно сделать новый HTTP-запрос и запустить новый (или тот же) PHP-скрипт.
Вы можете сделать HTTP-запрос от JavaScript с помощью формы или Ajax.
Это два разных языка, которые работают в разное время – вы не можете с ними взаимодействовать.
PHP выполняется на сервере во время загрузки страницы. После загрузки JavaScript будет выполняться на клиентской машине в браузере.
Это может быть немного сложной задачей, но безопасным способом является создание куки-файла javascript, а затем выбор его переменной php cookie. Затем назначьте эту переменную php на сеанс php, который будет содержать данные более надежно, чем cookie. Затем удалите файл cookie используя javascript и перенаправляя страницу самому себе. Учитывая, что вы добавили команду php, чтобы поймать переменную, вы ее получите.
Если вы хотите использовать переменную js в php-скрипте, вы ДОЛЖНЫ передать ее в HTTP-запросе.
Это можно легко сделать, изменив или перезагрузив страницу (например, отправив форму или переадресуя с помощью js, как в ответе Криса ).
Но если вы не хотите перезагружать страницу, вы должны использовать AJAX , который предназначен для доступа к веб-серверам с веб-страницы.
Простым примером может быть:
var profile_viewer_uid = 1; $.ajax({ url: "serverScript.php", method: "POST", data: { "profile_viewer_uid": profile_viewer_uid } })
И в файле serverScript.php
вы можете:
$profile_viewer_uid = $_POST['profile_viewer_uid']; echo($profile_viewer_uid); // prints 1
Примечание: в этом примере я использовал jQuery AJAX , который быстрее реализовать. Вы можете сделать это и в чистых js.
Вам нужно добавить это значение в данные формы, которые отправляются на сервер. Вы можете использовать
<input type="hidden" value="1" name="profile_viewer_uid" id="profile_viewer_uid">
внутри вашего тега формы.