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?..."); - кросбраузерно

  

Прямой эфир
На озере Маралды павлодарец обматерил женщину и получил штраф
Маралды - степь голимая.  Понимаю, что фотокоммент от ИИ, но Павон ... с читателями надо быть честнее хотя бы с помощью…
#wlad14 часов назад
Зачем красят дымовые трубы павлодарских ТЭЦ
Зачем красят дымовые трубы павлодарских ТЭЦ Pavon опять заставляет меня встать на лыжи на асфальте.  Ребята, вы там…
#wlad15 часов назад
Павлодарцам предлагают придумать имя древнему мамонту
Лет десять назад назвали бы Нурсултаном. А сейчас, если исходить из того как он был собран, можно Конструктором назвать.
#wlad3 недели назад
Бдительный таксист сохранил пенсионерке из Павлодара шесть миллионов тенге
Искренне благодарить надо таксиста за проявленную бдительность и позицию - с опубликованием его ФИО. А господа…
#wlad3 недели назад
На добрачное обучение приглашают молодоженов и встречающихся павлодарцев
А обучающие видики с немецкими сантехниками будут показывать?
#wlad1 месяц назад
Светодиодные светильники стали причиной пожаров в Павлодарской области
а лучше вообще не использовть, случаев возгорания этих светильников куча просто.
#sergadm1 месяц назад
Наблюдение за птицами организуют для жителей Павлодара в эти выходные
Инициатива замечательная. Не успеваю везде
#Somik1 месяц назад
Пятеро погибли, спасая 17-летнего парня: в Минтруда назвали виновного в трагедии на Aqtogai Milk
Напомнило: Сидят трое пьяниц, выпивают. Первый наливает из бутылки, выпивает, падает замертво.Второй смотрит на…
#wlad1 месяц назад
Какие товары производят в Павлодарской области (фото)
Сыр павлодарский беру периодически. Производится в Иртышске вроде как
#Somik1 месяц назад
Выплаты бойцам в "Жасыл ел" выросли на ноль тенге за последние 5 лет в Павлодарской области
ну собственно им платят в соответствии с работой . там где обычному работнику работы на полчаса, эти шляются  толпой …
#sergadm2 месяца назад
В полиции подтвердили информацию о задержании павлодарского депутата и бизнесмена Александра Терентьева
Не раскрывается ... не разглашается. Да в интернете полно информации об этом, только Павон один изображает страуса.
#wlad2 месяца назад
Кто из звезд казахстанской эстрады выступит в Кенжеколе 9 августа
Цыпа, передай этим парням, что обладательница официального мирового рекорда Книги рекордов Гиннесса среди ныне живущих…
#wlad2 месяца назад
Из-за банки пива павлодарского предпринимателя оштрафовали на 120 тысяч тенге
не мешало бы , чтобы и покупатель нёс ответсвенность. А если не совоершеннолетний выпьет бутылку в зале и готов оплатить…
#sergadm4 месяца назад
Жителей Экибастуза напугали подземные толчки
1–3 балла: Очень слабые колебания. Люди их не ощущают (толчки фиксируют только приборы), либо замечают только те, кто…
#sergadm4 месяца назад
"Иртыш" решил судьбу главного тренера Альшевского
Алдияру Жапарханову, спасибо! Видим, что ситуация меняется. Две ничьи 2:2 тому подтверждение. Я был на игре с Алтаем. На…
#Somik4 месяца назад
Девушка оставила заведенный внедорожник во дворе и чуть не лишилась его в Павлодаре
Оперативно, приятно, что за нами присматривают
#Somik4 месяца назад
Школьникам из села Жетекши подарили новый автобус
Симпатичный яркий автобус. Я бы его со всех сторон изучил. Необычный транспорт
#Somik5 месяцев назад
Более 15 миллиардов тенге потратят на ремонт и модернизацию павлодарской ТЭЦ-2 в 2026 году
За системный подход к ремонту спасибо. За улучшение бытовых условий для сотрудников отдельное спасибо
#Somik5 месяцев назад