Помощник
|
Формирования документа с помощью AJAX |
yuriy_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
ZhukV |
8.6.2011, 11:07;
Ответить: ZhukV
Сообщение
#2
|
|
Лично я не вижу в этом никакого смысла, поскольку ты будешь больше раз обращаться к серверу, что в результате даст тебе больше нагрузки на сервер + дольше будет загрузка!
АЯКС используется только тогда, когда нужно отправить данные на сервер и при этом не перезагрузить страницу (к примеру, если данный очень малые) |
|
|
ZhukV |
8.6.2011, 11:19;
Ответить: ZhukV
Сообщение
#3
|
|
При выборке с БД, сформируй класс (желательно), используя функцию mysql_fetch_object()
Обработай данный, как тебе нужно и выдай при помощи - json_encode() [PHP] $t = mysql_fetch_object($resource); $r = new stdClass; $r->info = $t->info; // Code // ....... print json_encode($r); exit; // Or other operations [/PHP] А на клиенте, нужно получать в JSON-е. Если используеш jQuery, то укажи тип возврата данных. Далее уже вставляй себе как нужно. Для того, чтобы автоматически подгружать у все дивы инфу, можно попробывать так: Для дива дай еще какой-то тег, припустим -- remote, где укажишь путь к скрипту, которій должен дать ответ. А потом, при помощи JS, пройдись по всем дивам, которые имеют данный атрибут и сгенерируй запрос. Ну что-то типа такого <div remote="_path/to/scripts/me_scripts.php"></div> [JS] (function($){ $(document).ready(function(){ $('div[remote!=""]').each(function(){ var $this = this; var url = $this.attr('remote'); if (!url) { return; } $.ajax({ url:url, type:'json', success:function(data){ $this.html(data.text) } }) }) }) })(jQuery) [/JS] ---------------- P.S. Писал на быструю руку, не тестил. Думаю смысл понятен. |
|
|
yuriy_hb
|
Сообщение
#4
|
|
Что то я не пойму твой подход. Ты хочешь сказать, что извлекать даные из таблицы (к примеру нужно извлечь 50 строк и передать их клиенту) есть нерационально. Почему? 10 столбцов х 50 строк получается 500 значений (разе передать эти 500 чистых значений без html-кода значений есть проблема для сервера, и при этом будет затрачиватся много времени на передачу???)
|
|
|
yuriy_hb
|
Сообщение
#5
|
|
слишком заумно что... не совсем пойму как обработать ответ сервера на строне клиента...На стороне клиента с помощью JS или Query мне нужно принять массив данных в формате JSON, создать html-код (формируем таблицу) и в каждую ячейку табл. поместить соответствующее значение полученое из сервера... вот как можно пороспихивать массив данных в каждую строку... и в каком виде (в виде строки, массива...) мы получаем ответ с сервера???
|
|
|
nexus_hb |
8.6.2011, 16:36;
Ответить: nexus_hb
Сообщение
#6
|
|
А в чем сложность то?
Делаете AJAX запрос на сервер, там возвращаете данные в формате JSON, а на клиенте как-то так: [JS] $.ajax({ url:url, type:'POST', dataType: 'json', success:function(data){ if(data){ var content = '<table>'; $.each(data,function(){ content += '<tr><td>'+data.type+'</td><td>'+data.marka+'</td></tr>'; }) content += '<table>'; $('#result').html(content); } } }) [/JS] |
|
|
yuriy_hb
|
Сообщение
#7
|
|
Да, вы правы, это как вариант который можно использовать!!!
А подскажите еще один момент! А как тогда лутчше сформировать на сервере ответ чтобы его затем отправить клиенту. Существует масса способов. Скажем если выбираются одна строка из табл. то вот такая конструкция: $arr = array('type' => $type, 'marka'=>$marka...); echo json_encode($arr); подходит если даных немного передается клиенту, а если скажем выборка насчитывает строк 100, нужно как-то в массив все это дело заганять... чтобы тогда на строне клиента разобрать его по полочкам. |
|
|
alexdrob |
8.6.2011, 18:41;
Ответить: alexdrob
Сообщение
#8
|
|
а даные всей таблицы Что значит данные все таблицы) если у вас 10 000 записей вы все 10 000 записей за раз отправите? JSON гибкий, делайте так же как оно в таблице так же и в json, разбивайте на строки и столбцы. что то типа [ {"id":"значение1", "type":"значение1" ...}, {"id":"значение2", "type":"значение2" ...}, ... ] а в JS уже форматируйте. |
|
|
yuriy_hb
|
Сообщение
#9
|
|
Понятно, спасибо за розяснения...)))
|
|
|
alexdrob |
8.6.2011, 20:37;
Ответить: alexdrob
Сообщение
#10
|
|
Генерируешь на php JSON строки
[PHP]<?php echo '[ { "id": "1", "name": "Alexandr" }, { "id": "2", "name": "Ivan" }, { "id": "3", "name": "Petr" } ]'; ?>[/PHP] А вот так получаешь <script src="./js/jquery.js"></script>
<script> function g() { $.getJSON('ajax.php', function(data) { var items = [] $.each(data, function(key, val) { items.push("<tr><td>" + val.id + "</td><td>" + val.name + "</td></tr>") }) $("#res").html('<table border="1"><tr><td>ID</td><td>Name</td></tr>' + items.join('') + '</table>'); }) } </script> <div id="res" onclick="g()">Click me!</div> |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Раскройте свой потенциал заработка с помощью 2x2 Media Network — вашего пути к выгодным предложениям CPA! Присоединяйтесь к 2x2 Media Network, вашему надежному партнеру в мире |
11 | 2x2MediaLimited | 3299 | 18.4.2024, 4:22 автор: 2x2MediaLimited |
|
Проверка позиций сайтов в поисковых системах с помощью Positon.ru Мониторинг продвижения сайтов |
183 | Positon | 179780 | 12.4.2024, 8:32 автор: Positon |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44944 | 19.7.2023, 10:03 автор: qpPeW |
|
WEB и SMM дизайн — решение ваших бизнес задач с помощью дизайна | 8 | justburger | 5342 | 6.7.2020, 9:18 автор: justburger |
|
Целевой трафик +30% за 4 месяца с помощью SEO продвижения у Хачатура - отзывы и кейсы в топике | 6 | Mikejones | 3461 | 9.7.2019, 10:47 автор: Mikejones |
Текстовая версия | Сейчас: 25.4.2024, 16:56 |