Как получить значение переменной JavaScript в PHP
Я хочу значение переменной 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>
Когда я повторяю, он ничего не показывает.
Ответы
Ответ 1
Вам нужно будет использовать 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
Ответ 2
Вот пример работы: Получить значение переменной javascript на той же странице.
<script>
var p1 = "success";
</script>
<?php
echo "<script>document.writeln(p1);</script>";
?>
Ответ 3
Добавьте файл cookie с переменной javascript, к которой вы хотите получить доступ.
document.cookie="profile_viewer_uid=1";
Затем добавляет его в php через
$profile_viewer_uid = $_COOKIE['profile_viewer_uid'];
Ответ 4
Вы можете начать с изучения того, что такое Javascript и php. Javascript - это клиентский интерфейс script, работающий в браузере компьютера клиента, подключенного к веб-серверу, на котором выполняется 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>
Ответ 5
PHP работает на сервере. Он выводит некоторый текст. Затем он перестает работать.
Текст отправляется клиенту (браузеру). Затем браузер интерпретирует текст как HTML и JavaScript.
Если вы хотите получить данные с JavaScript на PHP, вам нужно сделать новый HTTP-запрос и запустить новый (или тот же) PHP script.
Вы можете сделать HTTP-запрос от JavaScript с помощью формы или Ajax.
Ответ 6
Если вы хотите использовать переменную js в php-скрипте, вы ДОЛЖНЫ передать ее в HTTP-запросе.
Это можно легко сделать, отправив или перезагрузив страницу (как в ответе Криса).
Если вы не хотите перезагружать страницу, вы должны использовать AJAX, который предназначен именно для связи между веб-страницей (js) и сервером (php) без перезагрузки/изменения страницы.
Простой пример может быть:
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, который быстрее реализуется. Вы можете сделать это и в чистом виде.
Ответ 7
Это два разных языка, которые выполняются в разное время - вы не можете с ними взаимодействовать.
PHP выполняется на сервере во время загрузки страницы. После загрузки JavaScript будет выполняться на клиентской машине в браузере.
Ответ 8
Это может быть немного сложной задачей, но безопасным способом является создание куки файла javascript, а затем выбор его переменной php cookie. Затем назначьте эту переменную php в php-сеанс, который будет хранить данные более надежно, чем cookie.Then удалите файл cookie с помощью javascript и перенаправьте страницу самому себе.
Учитывая, что вы добавили команду php, чтобы поймать переменную, вы ее получите.
Ответ 9
Вам нужно добавить это значение к данным формы, которые отправляются на сервер. Вы можете использовать
<input type="hidden" value="1" name="profile_viewer_uid" id="profile_viewer_uid">
внутри вашего тега формы.