Купить цифровой фотоаппарат тут: купить цифровой фотоаппарат.
раскрутка сайтов
-
200910 Aug
Если Вам нужно вывести динамически данные, которые "подгружаются" извне, то вот мое готовое решение для этих целей. Для этого мы воспользуемся JAVASCRIPT-фремворком, воспользовавшись его AJAX и APPEND-функциями
Рабочий пример этой статьи можно увидеть по адресу: http://www.kvadroom.ru/yadoma/regions.html
Для начала нужно создать элемент который будет вызывать нашу jQuery-функцию подгрузки и также создать HTML-элемент внутрь которого данные и будут подгружаться.
<li id='r_123'>
<a href="#stayhere" onclick='ExpandRegs(123);return false;'>Нажми меня :)</a>
</li>
А теперь переходим к JavaScript
Чтобы дважды не подгружались данные для этого и того же элемента инициируем проверочный массив
var op=new Array();
Сама функция (r - идентификатор элемента по которому нажали, в нашем случае 123)
function ExpandRegs(r){
Первое это проверка, того же двойного нажатия
if(op[r]==1)return;
Теперь отправляем AJAX запрос, для этого можно использовать варианты $.post - для большого POST-запроса, $.get - для маленького HTTP-GET. В качестве параметра r_id передается идентификатор текущего элемента.
$.post('/static/js_http_regions_xml.php',{'r_id':r}, function(xml){
Обратите внимание! jQuery без глюков работает только c XML в кодировке UTF-8. Для конвертации используйте функцию UTF-8. Если в XML-файле ответа будут ошибки, то, скорее всего такие браузеры как Mozilla, Opera, Safari все равно их "прожуют" а вот Internet Exporer - без выдачи ошибки все что внутри $.post просто не выполнит.
Пример получаемого XML-ответа:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?><allregs>
<region><id>2513</id><name>Джава</name></region>
<region><id>2514</id><name>Кваиси</name></region>
<region><id>2515</id><name>Корниси</name></region>
<region><id>2516</id><name>Ленингори</name></region>
<region><id>2512</id><name>Цхинвали</name></region>
</allregs>
Только когда получили ответ на наш AJAX-запрос создаем внутренний HTML-элемент.
$("#r_"+r).append("<ul id='rr_"+r+'></ul>');
И финал, разбираем пришедший в ответ XML-файл и генерируем HTML-код
$(xml).find('region').each(function(){
var nm=$(this).find('name').text();
var id=$(this).find('id').text();
$("#rr_"+r).append("<li id='r_"+id+"'><a href='#stayhere' onclick='ExpandRegs(\""+id+"\");return false;'>"+nm+"</a></li>");
});
Занавес: делаем отметку в проверочном массиве, что данный ID уже выведен
op[r]=1;
А теперь целиковая рабочая версия на PHP и JAVASCRIPT
<?
$rez=mysql_query("SELECT * FROM `some_table` WHERE 1");
while($res=mysql_fetch_assoc($rez)){
?>
<li id='r_<?=$res[id]?>'><a href="#stayhere" onclick='ExpandRegs(<?=$res[id]?>);return false;'><?=$res[name]?></a></li>
<?}?>
</ul>
<script type='text/javascript' src="http://zhogov.ru/i/jquery.js"></script>
<script type='text/javascript'>
var op=new Array();
function ExpandRegs(r){
if(op[r]==1)return;
$.post('/static/js_http_regions_xml.php',{'r_id':r}, function(xml){
$("#r_"+r).append("<ul id='rr_"+r+'></ul>');
$(xml).find('region').each(function(){
var nm=$(this).find('name').text();var id=$(this).find('id').text();
$("#rr_"+r).append("<li id='r_"+id+"'><a href='#stayhere' onclick='ExpandRegs(\""+id+"\");return false;'>"+nm+"</a></li>");
});
op[r]=1;
});
}
</script>
Исходный код PHP-файла, который генерирует XML-ответ
<?
$str=$_POST['r_id'];
if(!$str && $_GET['r_id'])$str=$_GET['r_id'];
$rez=mysql_query("SELECT * FROM `some_table` WHERE `parent_id`=\"$str\"
ORDER BY `name` ASC");
if(mysql_num_rows($rez)>0){
while($res=mysql_fetch_assoc($rez))
{
$allregs{$res[id]}=$res[name];
$tot{$res[id]}=$to[tot];
}
}else{
$allregs=array();
$tot=0;
$text="";
$str="";
}
header("Content-type: application/xml");
echo '<?xml version="1.0" encoding="utf-8" standalone="yes" ?>';
?><allregs>
<?
while(list($k,$v)=each($allregs)){
?><region><id><?=$k?></id><name><?=iconv("windows-1251","UTF-8",$v)?></name></region><?
}
?>
</allregs>
Получился достаточно компактный но эффективный код, который надеюсь Вам пригодится.
Если что-то не получается - отписывайте комментарий и обязательно указывайте свой email , я постараюсь в ближайшее время с Вами связаться.
-
Комментарии
-
1.
пишет: Comment » 23 Окт 09 в 09:04
-
2.
Имя пишет: Comment » 26 Дек 09 в 12:05
неплохо, вот только не хватает свёртывание, по привычке нажимаешь, а список не сворачивается, это плохо
-
3.
Proglammer пишет: Comment » 05 Апр в 00:37
Спасибо! давно руки до аякса не доходили - а тут всё по полочкам разложено :)
-
4.
-
1.
- Спайсмен
- Apple iTablet
- Fish3000 // Rublex
- Нотикофф
- СтоликоФФ
- Каштановый лес
- Александр Горбунов
- Кард-мастер
- Московская Ассоциация Риэлтеров (МАР)
- GSM-Лаборатория R2C
- Первый Строительный Трест
- РисиРыба
- Buzz
- Henry Bonnare
- DJ Пилот и DJ Слава Шелест
- Проматомкомплектация
- People3000
- FёrstFlowers
- DJ-Shop Россия
- Квадрум. Недвижимость России
- strtoupper не работает
- Автоповорот фотографии
- Вернуть правильное окончание
- Вставить лого в картинку
- Геокодинг при помощи Google Maps и PHP
- Как быстро получить MySQL дамп (dump) или закачать дамп базы при помощи SSH
- Не работает javascript onchange
- Повернуть изображение
- Проверить email
- Работы с Imagemagick + Magickwand PHP
- Сгенерировать строку
- Сделать GZIP-сжатие страницы
- Спрятать email
- Уменьшить фото PHP

Оставить комментарий