Помощник
|
Передача данных между PHP и JavaScript |
gaaarfild
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
11.1.2009, 23:48;
Ответить: ZiTosS
Сообщение
#2
|
|
из PHP в JavaScript:
1) При формировании страницы можно присваивать JS переменным значения PHP переменных. Пример: [php]...... <script type="text/javascript"> var param = <?php echo $param ?>; //JS переменная param получает значение PHP переменной $param // Если Строка var string = "<?php echo $string ?>"; //Если Массив var array_array = new array(<?php implode(",", $array) ?>); /*и так далее*/ </script> .......[/php] 2) возвращаемые данные AJAX запроса. Можно вернуть просто текст, можно HTML, можно XML. Затем обработка с помощью JS 3) Можно возвращать данные на основе AJAX в формате JSON _http://ru.wikipedia.org/wiki/JSON Очень удобная работа в JS 4)Передача данных по cookie. Но это очень примитивно и легко подменяемо. из JavaScript в PHP: 1) Обычный POST или GET запрос в форме с скрытыми полями, значения присваиваются с помощью JS и форма отправляется на обработку PHP 2) С помощью AJAX запроса основанного на объекте xmlHttpRequest. Данную тему рассматривали на форуме. Динамическое обновление. AJAX как можно обеспечит доступ до данных и БД динамически, не перезагружая страницу?(Через JavaScript или AJAX). JS - это клиентский, браузерный язык у него нет доступа к серверу, он работает на клиентской стороне, т.е. у пользователя на машине. Вывод одним JavaScript для динамического обновления не обойтись... Нужно использовать Ajax в основе которого лежит объект JS xmlHttpRequest. Вот возвращаем данные из БД с определённым ID index.html <html> <head> <script type="text/javascript" language="javascript"> function makeRequest(id_block) // функция Ajax запроса { var http_request = false; // переменная для хранения XMLHttpRequest объекта if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); // Mozilla, Safari, ... if (http_request.overrideMimeType) { http_request.overrideMimeType('text/html'); // Тип возвращаемого контента } } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); // IE } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); // Opera } catch (e) {} } } if (!http_request) // Если объект не был создан { alert('Не вышло :( Невозможно создать экземпляр класса XMLHTTP '); return false; } //присваеваем обработчику функцию для обработки возвращенного контента http_request.onreadystatechange = function() { alertContents(http_request); }; //функция - обвёртка http_request.open('GET', "./file.php?id="+id_block, true); //метод запроса, URL, асинхронность http_request.send(null); } function alertContents(http_request) { if (http_request.readyState == 4) //Если состояние запроса = "Выполнено" { if (http_request.status == 200) //Если всё прошло удачно { //присваиваем элементу DIV с id=ajax возвращенный контент document.getElementById('ajax').innerHTML = http_request.responseText; } else { alert('С запросом возникла проблема.'); } } } </script> </head> <body> <input id="id_block" type="text" name="id"><br/> <input type="botton" value="Выдать данные" onClick="makeRequest(getElementById('id_block').value)"><br/><br/> <div id="ajax">Блок из базы</div> </body> </html> file.php [php]/*Подключение к БД*/ .......................... if(isset($_GET['id'])) { $query = "SELECT * FROM table WHERE id=".intval($_GET['id'])." LIMIT 1"; //Запрос к table $res = mysql_query($query); $array = mysql_fetch_array($res); //массив значений //вывести $имя_миассива['имя_поля'] echo "pole1 = {$array['pole1']}, pole2 = {$array['pole2']}, ....., poleN = {$array['poleN']}"; }[/php] |
|
|
gaaarfild
|
Сообщение
#3
|
|
Я конечно почти ничего не понял, но буду пытаться разобраться. =)
|
|
|
ZiTosS |
12.1.2009, 23:55;
Ответить: ZiTosS
Сообщение
#4
|
|
Читай! Дописал комментарии!
|
|
|
gaaarfild
|
Сообщение
#5
|
|
Хорошо. Спасибо. Я разберусь.
|
|
|
FordogeN |
28.1.2009, 2:19;
Ответить: FordogeN
Сообщение
#6
|
|
А все же я так и не понял - как сделать так, чтоб просто то, что внутри <div> или любого другого тега с подключенным скриптиком - просто обновилось... Как фрейм.
-------------------- |
|
|
ZiTosS |
28.1.2009, 21:39;
Ответить: ZiTosS
Сообщение
#7
|
|
По какому либо событию в JS мы меняем контент в элементе, для этого у блочных элементов есть атрибут innerHTML
..... <!-- СОБЫТИЕ ПРИ НАЖАТИИ НА КНОПКУ (onClick) --> <input type="button" onClick="newContent();" value="заменить контент"> <!-- ТО В ЧЁМ ЗАМЕНЯЕМ --> <div id="newBlock">старый контент</div> .... <script type="text/javascript"> function newContent() { /* Переменная нового контента */ var content = "новый контент"; /* В переменную myElement заносим адрес нашего блока по id=newBlock*/ var myElement = document.getElementById("newBlock"); /* Меняем контент с помощью атрибута innerHTML */ myElement.innerHTML = content; } </script> .... Если что-то не понятно, напиши что именно |
|
|
gaaarfild
|
Сообщение
#8
|
|
FordogeN
А ты скорее всего говоришь об AJAX. Javascript не обладает возможностью соединения с сервером. Работает только в браузере на компьютере. |
|
|
ZiTosS |
13.2.2009, 20:41;
Ответить: ZiTosS
Сообщение
#9
|
|
gaaarfild, неправильно ты сформулировал. JavaScript хоть и работает на стороне клиента, но обращение к серверу при асинхронном(синхронном) запросе мы выполняем именно на основе него. Другое дело что работу с сервером, возвращение данных выполняет технология AJAX основанная на JavaScript и XML(хотя контент можно возвращать и просто текстом).
Поэтому фраза Javascript не обладает возможностью соединения с сервером Категорически не верна. В JavaScript есть такой объект как xmlHttpRequest, который имеет возможность выполнять запрос. |
|
|
gaaarfild
|
Сообщение
#10
|
|
Все, заткнулся. =)
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Интеграция спортивных данных API. Коэффициенты БК, Live результаты | 14 | yaroslav89 | 6625 | 13.3.2024, 23:16 автор: spoyer_ru |
|
ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ [Чарджбек|Рекавери|Возврат] |
9 | Leado | 3801 | 9.2.2024, 16:04 автор: baza0013 |
|
Как вы сравниваете ТОП сайтов между собой? | 5 | noviktamw | 5775 | 10.1.2024, 13:23 автор: wanessa |
|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3289 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1168 | 24.11.2023, 14:46 автор: alexey |
Текстовая версия | Сейчас: 28.3.2024, 16:36 |