Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с динамическими select, как обратиться к динамическим select 
:(
    Опции темы
smoke888
Дата 7.6.2008, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.6.2008

Репутация: нет
Всего: нет



Здравствуйте уважаемые участники форума!

Пишу здесь, поскольку не получается самостоятельно справиться вроде бы с простой задачей.

сначала несколько слов о задаче:
Работаю я на предприятии, которое имеет несколько подразделений по области. Каждое подразделение отвечает за некоторые объекты в определенных районах этой области. Естественно районы имеют множество населенных пунктов. 

Руководство поставило задачу собрать по локальной сети кое-какие данные с подразделений. Решили использовать для этого web технологии. 
В частности php+mysql+javascript.  

В принципе задача простая и была реализована. Однако имеются шероховатости, причем существенные, которые хотелось бы устранить. 

Для ввода данных подразделениями я сделал, естественно, web форму. 
В нее входят несколько полей, меня интересует сейчас только 3:
Наименование подразделения: --список подразделений--
Район: --список районов--
Населенный пункт: -- список населенных пунктов--

Из справочной таблицы mysql я, при открытии формы, формирую начальные данные этих select'ов. Т.е. в список районов запихиваю все районы, которые существуют в области. В список НП запихиваю все населеные пункты всех районов. 

Таким образом, если человек легко выберет свое подразделение и район (их не так и много), то вот искать определенный населенный пункт он уже "запариться".

Поэтому я решил попробовать облегчить задачу людям. Из серфа по инету выискал, что есть такая чудесная технология AJAX, которая может мне помочь.

Нашел библиотеку JShttpRequest и с ее помощью сваял кое-чего.  

Получилось при выборе подразделения подгружать во второй селект только нужные районы. 

Но что-то я не пойму, почему когда просматриваешь код html страницы содержимое select районов прежнее. Хотя на экране select содержит только нужные мне сведения. 

select я обновляю с помощью выделения его блоками <div id=район></div>.

в JS написал следующее:
<script src="JsHttpRequest.js"></script>
<script type="text/javascript" language="JavaScript">
function autopodbor(name)
{ 
// Create new JsHttpRequest object.
var req = new JsHttpRequest();
// Code automatically called on load finishing.
req.onreadystatechange = function() 
{
if (req.readyState == 4) 
{
// Write result to page element (_RESULT become responseJS). 
document.getElementById('район').innerHTML = req.responseJS.row;
}
}
// Prepare request object (automatically choose GET or POST).
req.open(null, 'auto_select_backend.php', true);
// Send data to backend.
req.send({data: document.getElementById(name).value, element: name});
}
</script>

в команде req.send я отпраляю в 'auto_select_backend.php' данные выборе пользователя, а именно: document.getElementById(name).value - выбранное подразделение, element: name - собственно имя того selecta в котором пользователь и выбрал. 


После того как юзер делает change select'а код срабатывает и на месте поля <div id=район></div> появляется нужный мне select. Кстати из backend'а прилетает строка типа: "<select ....><option>....</option><option>....</option>.............</select>". Эту строку я вставляю в DIV и на экране обновленный select (с новыми данными).

Только вот не пойму одного, как с ним дальше работать?? Мне ведь нужно с него считать value. А Где имя ему давать? 
Фактически в коде html страницы он не показан никак после обновления......
PM MAIL   Вверх
VSergeyV
Дата 7.6.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 9.5.2006
Где: Новосибирск

Репутация: нет
Всего: 3



а при чем тут формум по Java от Sun Microsystems, Inc. smile 
PM MAIL ICQ   Вверх
smoke888
Дата 7.6.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.6.2008

Репутация: нет
Всего: нет



Цитата(VSergeyV @ 7.6.2008,  14:53)
а при чем тут формум по Java от Sun Microsystems, Inc. smile

Ого.. неожиданный вопрос на вопрос.. smile
PM MAIL   Вверх
fixxer
Дата 7.6.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: нет
Всего: 27



Вопрос вполне правомерный Java и JavaScript имеют мало общего.


--------------------
user posted image
PM MAIL ICQ   Вверх
Ghirik
Дата 7.6.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 5
Всего: 20



Цитата

Эту строку я вставляю в DIV и на экране обновленный select (с новыми данными).


Поставьте на время отладки на страницу кнопочку.

Код

<input type="button" value="Кнопка" onclick="alert(document.getElementById('Ваш Див, в котором селект').innerHTML)">



--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
smoke888
Дата 7.6.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.6.2008

Репутация: нет
Всего: нет



Цитата(Ghirik @ 7.6.2008,  16:41)
Цитата

Эту строку я вставляю в DIV и на экране обновленный select (с новыми данными).


Поставьте на время отладки на страницу кнопочку.

Код

<input type="button" value="Кнопка" onclick="alert(document.getElementById('Ваш Див, в котором селект').innerHTML)">

Хм.. согласен.. alert выдал именно данные нового селекта с новыми его параметрами типа value и name. 
Т.е. фактически он поменялся. Только почему это никак не отображается в коде html страницы?

Сказывается привычка работать с php.  smile 
PM MAIL   Вверх
Ghirik
Дата 7.6.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 5
Всего: 20



Цитата

Только почему это никак не отображается в коде html страницы?


В Mozilla даже меню называется не "просмотр HTML", а "Исходный код страницы".  smile 



--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
smoke888
Дата 7.6.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.6.2008

Репутация: нет
Всего: нет



Спасибо за ответы. Пока иду ровно. Если какие вопросы появяться, обращусь к вам за помощью.

Тему пока не закрывайте... smile 

Это сообщение отредактировал(а) smoke888 - 7.6.2008, 17:06
PM MAIL   Вверх
smoke888
Дата 8.6.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.6.2008

Репутация: нет
Всего: нет



Все задача решена. Тему можно закрывать. 

Ну и конечно памятник разработчикам AJAX!!! Великая штука!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.