Как сохранить значение из данных, сгенерированных javascript, в переменную PHP?

#php #javascript

#php #javascript

Вопрос:

Обратная этому:

 <script>
document.getElementById("jscript_element").value = '<?=$php_variable?>';
</script>
  

Возможно ли это?

Примечание: Post / Get не должен использоваться, поскольку скрипт будет интегрирован только в событие onChange, остальное — история.

Заранее спасибо!

Ответ №1:

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

Комментарии:

1. Он указывает, что «Post / Get не должен использоваться». Разве сообщение AJAX не остается сообщением?

2. @Michael: я полагаю, он имеет в виду предыдущий вариант, который я предложил (который стоит отметить как вариант), то есть имеющий форму action=»post / get», подразумевая, что пользователь покидает текущую историю. Хотя вызов AJAX использует метод POST или GET, пользователь сохраняет текущую загрузку страницы, поэтому в первую очередь используется AJAX.

Ответ №2:

Я думаю, что ответ на ваш вопрос заключается в порядке интерпретации двух типов скриптов.

 document.getElementById("jscript_element").value = '<?=$php_variable?>';
  

Все, что содержится в <? ?> тегах, интерпретируется сервером как PHP, а затем записывается на страницу. Затем эта полностью заполненная страница передается клиенту. Обратите внимание, что PHP выполняется только на сервере.

Как только страница загружена и представлена клиенту, PHP-код не существует. Чтобы установить переменную PHP, вы должны каким-то образом передать эти данные обратно на сервер.

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

Итак, имея это в виду:

Возможно ли это?

Нет.

Ответ №3:

За вашим вопросом, по-видимому, возникает путаница между действиями на стороне сервера и действиями на стороне клиента.

Вам следует прочитать некоторую информацию по этому вопросу, например, эту статью: http://www.virtualshowrooms.co.za/articlepage.php?cp=101 .

Ответ №4:

Хотя установка данных, сгенерированных javascript, в переменную php напрямую невозможна, вы можете следовать приведенному ниже методу для достижения этой цели, если требуется.

После получения значения, которое вы хотите сделать доступным в php, сохраните значение в файле cookie.

 <script type="text/javascript">
generated_value=document.getElementById("jscript_element").value;
document.cookie="cookie_name=" generated_value;
</script>
  

Затем в вашем php-скрипте просто считайте значение из массива $ _COOKIE.

 <?php $generated_value = $_COOKIE['cookie_name']; ?>
  

Для этого потребуется перезагрузка страницы, но вы сможете использовать значение, сгенерированное javascript.