Подтвердить что ты не робот

Как получить значение переменной 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>

Когда я повторяю, он ничего не показывает.

4b9b3361

Ответ 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">

внутри вашего тега формы.