Как передать данные от JavaScript до PHP и наоборот?

Вы можете попробовать использовать список карты, как показано ниже:

List<HashMap<Object,Object>>
11
задан outis 19 July 2012 в 02:50
поделиться

6 ответов

Передающие данные из PHP легки, можно генерировать JavaScript с ним. Другой путь немного более тверд - необходимо вызвать Сценарий PHP запросом JavaScript.

Пример (использующий традиционную регистрационную модель события для простоты):

<!-- headers etc. omitted -->
<script>
function callPHP(params) {
    var httpc = new XMLHttpRequest(); // simplified for clarity
    var url = "get_data.php";
    httpc.open("POST", url, true); // sending as POST

    httpc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    httpc.setRequestHeader("Content-Length", params.length); // POST request MUST have a Content-Length header (as per HTTP/1.1)

    httpc.onreadystatechange = function() { //Call a function when the state changes.
        if(httpc.readyState == 4 && httpc.status == 200) { // complete and no errors
            alert(httpc.responseText); // some processing here, or whatever you want to do with the response
        }
    };
    httpc.send(params);
}
</script>
<a href="#" onclick="callPHP('lorem=ipsum&foo=bar')">call PHP script</a>
<!-- rest of document omitted -->

Без разницы get_data.php производит, который появится в httpc.responseText. Обработку ошибок, регистрацию события и перекрестный браузер совместимость XMLHttpRequest оставляют как простые упражнения читателю ;)

19
ответ дан 3 December 2019 в 01:34
поделиться

Я использовал бы JSON в качестве формата и Ajax (действительно XMLHttpRequest) как клиент-> механизм сервера.

7
ответ дан 3 December 2019 в 01:34
поделиться

Можно передать данные от PHP до JavaScript, но единственный способ получить данные от JavaScript до PHP через Ajax.

Причина этого - Вы, может создать действительный JavaScript через PHP, но получить данные к PHP необходимо будет получить PHP, работающий снова, и так как PHP только работает для обработки вывода, Вам будут нужны перезагрузка страницы или асинхронный запрос.

1
ответ дан 3 December 2019 в 01:34
поделиться

Существует несколько путей, при этом самыми видными являются добирающиеся данные формы, или получающий строку запроса. Вот один метод с помощью JavaScript. Когда Вы нажмете на ссылку, она назовет _vals ('mytarget', 'theval'), который отправит данные формы. Когда Ваша страница отправляет назад, можно проверить, были ли эти данные формы установлены и затем получают ее от значений формы.

<script language="javascript" type="text/javascript">
 function _vals(target, value){
   form1.all("target").value=target;
   form1.all("value").value=value;
   form1.submit();
 }
</script>

Кроме того, можно получить его через строку запроса. PHP имеет Ваш _GET и _SET глобальные функции для достижения этого создания его намного легче.

Я уверен, что существует, вероятно, больше методов, которые лучше, но они - только некоторые, которые приходят на ум.

Править: Построение на этом от того, какие другие сказали, что использование вышеупомянутый метод у Вас был бы тег привязки как

<a onclick="_vals('name', 'val')" href="#">My Link</a>

И затем в Вашем PHP можно получить использование данных формы

$val = $_POST['value'];

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

2
ответ дан 3 December 2019 в 01:34
поделиться

другой способ обмена данные с php на javascript или наоборот - с помощью файлов cookie, вы можете сохранять файлы cookie на php и читать их с помощью javascript, для этого вам не нужно использовать формы или ajax

-1
ответ дан 3 December 2019 в 01:34
поделиться

Использование файлов cookie - простой способ. Вы можете использовать jquery и подключаемый модуль как jquery.cookie или создать свой собственный. Используя Jquery + jquery.cookie, например

   <script>
   var php_value = '<?php echo $php_variable; ?>';

   var infobar_active = $.cookie('php_value');
   var infobar_alert  = any_process(infobar_active);

    //set a cookie to readit via php
   $.cookie('infobar_alerta', infobar_alerta );

   </script>

   <?php 

    var js_value = code to read a cookie

   ?>

, я нашел полезные серверные и гибридные фреймворки: http://www.phplivex.com/ http://www.ashleyit.com/rs/

Я давно использую сценарий RSJS Эшли для обновления значений в HTML без каких-либо проблем. время, пока я не встретил JQuery (ajax, load и т. д.)

2
ответ дан 3 December 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: