AJAX, JavaScript и PHP

Нужен хелп от веб-разработчиков. Коим я не являюсь, но в виду своей деятельности приходится углубляться и в это.
В общем на данный момент, в плане php разработки у меня есть готовый модуль. Он создает и редактирует некую информацию в БД,
теперь по задумке, мне надо эти данные из БД извлекать в select'ы. Что замечательно работает. Но, для того, что бы в селектах не было хлама и ненужной инфы нужно сделать связанные списки.
Т.е. пример: мы выбираем страну, а на основе нашего выбора он заполняет второй селект городами, которые принадлежат данной стране.
Если брать чистый пхп, то это сделать без проблем, но каждый раз страничку нужно перезагружать. Что ни есть хорошо. Тогда было решено пойти дальше в освоении ЯваСкрипта. Еще точнее технологии AJAX.
Уже неделю читаю соответствующую литературу, что-то пробую, где-то получается, где-то не получается, и мне всегда было удобно обучаться когда есть конкретная задача. Брал в примеры множество скриптов, и каждый из них работает по разному и в частности везде данные для селекта хранятся в масссиве созданном в самом ЯваСкрипте. А мне нужно сгенерить этот массив получив данные от БД.
Основная суть задачи ясна. Но остается прояснить некоторые моменты, а в идеале получить работающий скрипт (может их валом, а я не там ищу и с нуля изобретаю велосипед), ведь я сам себе полагаю что данный скрипт может быть универсален, ему лишь нужно передавать нужные данные, например:
при выборе селекта на событие "выбор" цеплять процедуру из ЯваСкрипта. <select id="country" name="country" onchange="getlist('nameList', 'country', 'idcountry')">
а ЯваСкрипт должен использовать эти переменные, делать запрос к бд на основе их и генерировать список.
тобишь,
если параметр = 'country' то посылаем запрос c переменной idcountry к БД (как я понял только через php файл) и получаем ответ.
Потом ищем на странице нужный селект с именем nameList и заполняем полученными данными.
вроде бы как два пальца, но...
мне нужно знать что нужно передавать от php странице к ЯваПриложению и как то, что мы получили распарсить. А может там вообще можно получить тот же чистый массив от php, а я просто еще этого не понял.
Пока организовал в php в ответ на запрос типа index.php?task=getCity&country=1 возвращение массив только тех городов, которые принадлежат этой стране.
Вопрос, может быть возвращать данные нужно в каком-то особенном виде типа генерации html странички с данными, или ЯваСкрипт воспримет ответ в виде массива сам и его можно просто присвоить какой либо переменной в скрипте? Еще я вроде понял что из php можно генерить в ответ xml файл (как еще хз), который принимается скриптом через запрос XmlHttpRequest, парсится в массив и выводится. Опять же, рабочих примеров, что бы разобратся самому не нашел. Просто хотя бы натолкните на правильный алгоритм отдачи информации от пхп к скрипту и генерация массива из полученного ответа.
Данный скрипт хочу сделать именно уневерсальным, что бы только нужно было указывать какую задачу выполнять, что получать и какой select это вставлять. Т.к. этот алгоритм хочу использовать не на одной страничке. Мне бы один рабочий пример, а доп.функции я сам разберусь и допишу.
Еще бы не отказался от учебника по AJAX и ЯваСкрипту желательно в примерах, для облегченного понимания принципа работы.

Поделиться
+1
Сергей

Анти10 августа 2011 15:15

написал в асю, принимай) какраз недавно готовил рабочий пример для знакомого

Алексей

A-lex11 августа 2011 19:31

в общем порыскав немного в интернетах, а еще точнее тут и тут, и еще было не мало сайтов.
во втором, более конкретном случае было всё ясно и понятно, делаем выборку из БД и так же формируем XML документ, но всё осложнилось тем,  что пишется компонент для Joomla. И на выходе она упорно не хотела давать чистый XML код. Хотя функцией responseText оно видело как чистый XML файл. (а всё потому, что подлая жумла дописывает в файл теги html, head и body, которых нет в исходном коде, но замечательно видны в FireBug). Еще немного посмотрев примеров парсинга текста была написанна функция всего в две строчки! И я как дурик бился над этим неделю %)
В общем исходный код выдачи информации был переписан на генерацию типа:
<option value="значение">текст</option>
а потом было написано примерно следующее:
всё тоже самое что в скрипте с примера только функция getColor была облегчена до двух строк:


function processReqChange(){
    if(req.readyState == 4){
        if(req.status == 200){           
           getData(req.responseText);
        }else{
            alert("There was a problem retrieving the XML data:\\n" + req.statusText);
        }
    }
}
function getData(xml){   
    var _select = document.getElementById("индификатор selecta на форме");
    _select.innerHTML = xml;          
}

оказалось всё элементарно и я упорно изобретал велосипед Embarrassed

#kid

#kid11 августа 2011 19:50

A-lex
оказалось всё элементарно и я упорно изобретал велосипед Embarrassed
В ИЕ не будет работать.

Алексей

A-lex11 августа 2011 21:46

пля, точно :(((

Роман

RONIK11 августа 2011 22:09

Отписал в лс

TV0ReC

TV0ReC22 августа 2011 16:06

Не изобритайте вилосипед, jquery в помощ

$("#id_selector").get("ajax.php?..."); - кросбраузерно

  

Прямой эфир
Популярные у павлодарцев огурцы и помидоры теперь в списке социально-значимого продовольствия
Интересно - а владелец магазина в деревне Павлодарские Ебеня за 200 км. от славного города Павлодара, где он продукты…
#wlad2 дня назад
Иностранка пыталась продать почку в Павлодаре
sergadm, да, в количестве двух штук.
#wlad4 дня назад
Футбольный стадион на 20 тысяч зрителей начнут строить в Павлодаре
А это точно начнут строить в 2026 году? Разве уже есть эскизы, ПСД, застройщик и т.д. Такая большая стройка так просто…
#John Wick1 неделю назад
"Иртыш" объявил о массовом уходе известных футболистов
Там вообще остался, кто играть в КПЛ будет? Кто будет выходить последний, свет выключите...
#John Wick1 неделю назад
Детский хоспис откроют в Павлодаре
Дело хорошее. Тут без власти не пожить... Благодарность
#Somik1 неделю назад
Первую многоэтажку в Затонском микрорайоне Павлодара сдадут до конца этого года
20 - 2 этажек заменили 7 - девятиэтажными домами и 2-мя 2 - этажными, мощности какие никакие есть
#Somik1 неделю назад
Через Пакистан, Индию и Непал: как велопутешественник из Павлодара покорил Эверест
Довольно-таки всё путано описано, с синего на тёплое постоянно перепрыгиваем. А вот это вообще шедевр: - Самая высокая…
#wlad1 неделю назад
В Павлодаре горожане и спортсмены не поделили горку в Зеленой роще
Действительно, место отдыха было для всех. Административный ресурс замечательно работает, но тут непродуманно. Хоть на…
#Somik1 неделю назад
Строительство 4 многоэтажек намерены начать в микрорайоне "Достык" в Павлодаре
Планы грандиозные. Видимо государство подумало об этом. Теперь - "Aq Jol", чтобы реализация не подвела
#Somik1 неделю назад
В Павлодаре начали строить новый завод
Жаль подробностей нет. Но стратегия видна, думает кто-то на перспективу и это замечательно
#Somik1 неделю назад
Как диабетикам получить социальные выплаты в Павлодаре
Инсулинозависимый диабет (сахарный диабет 1 типа). Термин «инсулинопотребный» обычно относится к сахарному диабету 2…
#Somik1 неделю назад
Сокращение количества бродячих собак привело к росту числа лис в Павлодаре
Сокращение количества бродячих собак привело к росту числа лис в Павлодаре - Любой вид, когда он живёт где-то, он…
#wlad1 месяц назад
Нового прокурора представили в Павлодаре
А вы, друзья, как ни садитесь ... .
#wlad1 месяц назад
"Куртка за 1,2 млн тенге": аким Павлодарской области объяснил, откуда в его гардеробе дорогие вещи
На воре и шапка горит. На акиме любое пальто хорошо сидит.
#wlad1 месяц назад
Откуда в Павлодарской области появился ВИЧ
По путям передачи в этом году лидирует половые гетеро- и гомосексуальные – 67,5%, на втором месте – при введении…
#wlad1 месяц назад
Павлодарский нефтехимический завод решено передать в частные руки
КГП на ПХВ «ERTIS SU PVL». знать бы что сиё значит, может и прикупил бы )))).
#wlad2 месяца назад
Зловонные стоки протекли в Семее и попали в Иртыш, откуда берут воду Экибастуз и Павлодар
Зловонные стоки протекли в Семее и попали в Иртыш, откуда берут воду Экибастуз и Павлодар И Караганда. А вообще,…
#wlad2 месяца назад
Выделить стену для мозайки попросила жительница Павлодара у акима города
Выделить стену для моза й ки ... . Павон, .
#wlad2 месяца назад
На 98-ом году жизни не стало легендарного павлодарского тренера Рафаэля Вахитова
Тяжелая продуктивная жизнь. Спасибо автору за короткую биографию, за знакомство. Светлой памяти
#Somik2 месяца назад
В павлодарском университете открыли центр китайского языка
Нам тоже предлагают учить, но страшно начинать в 40 и необходимости нет. Жена говорит с китайцами на английском...
#Somik2 месяца назад