Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не могу выловить событие по форме вызванной ajax-ом
 
 автор: sasha12345   (25.05.2016 в 12:55)   письмо автору
 
 

Всем доброго дня!

На странице есть фильтр с формами, чек-боксами, селектами и т.п. Так вот, фильтр срабатывает когда меняется значение хотя-бы одной формы, а если быть точнее, то у всех форм задан один класс, и по change function посылается ajax запрос в скрипт обработчик и ответ выводится на экран.

Проблема возникает тогда, когда я часть фильтра(а именно два поля select с датами "От" и "До") вывожу из отдельного файла(файл php в котором формируется эти списки). В этом случае фильтр уже не срабатывает по изменению значения этих двух полей, хотя класс полей не менялся. Другими словами, если я вывожу эти два селекта непосредственно на странице, то форма срабатывает по изменению значений этих полей, а если я вывожу их ajax-ом из другого файла, то форма уже не срабатывает.

В чем может быть проблема?

  Ответить  
 
 автор: KPETuH   (25.05.2016 в 13:57)   письмо автору
 
   для: sasha12345   (25.05.2016 в 12:55)
 

Проблемы на само деле нет, вы вешаете событие на клас, но элементов этого класса еще не существует на момент отработка js. Если вы делаете например на jquery то внимательно прочитайте хелп по обработчику события.

  Ответить  
 
 автор: sasha12345   (25.05.2016 в 14:12)   письмо автору
 
   для: KPETuH   (25.05.2016 в 13:57)
 

Хорошо, а если я делаю следующим образом: на странице вывожу селект с классом
<select class='filter' size='1'>
        <span id='echo_DATA'></span> 
        </select>

а в "echo_DATA" вывожу
<option value='$row' >$row</option>
которые формирую в отдельном файле php.

В итоге, в echo_DATA ничего не попадает(селект пустой).

alert показывает все сформированные option, а в select они не выводятся... Что получается, что js не может добавлять новые option в уже сформированный select?

  Ответить  
 
 автор: confirm   (25.05.2016 в 16:47)   письмо автору
 
   для: sasha12345   (25.05.2016 в 14:12)
 

<select class='filter' size='1'>
<span id='echo_DATA'></span>
</select>

Уже интересно. Это где вы такое откопали? В теге SELECT кроме OTION иных тегов не должно быть. Поместить в атрибут id тег OPTIN, это нечто запредельное.

  Ответить  
 
 автор: sasha12345   (25.05.2016 в 18:17)   письмо автору
 
   для: confirm   (25.05.2016 в 16:47)
 

Понял. Тогда еще пару вопросов:

Так как у меня один php файл который формирует списки дат "От" и "До" для двух select-ов, могу ли я одним ajax запросом вывести в два разных select-а соответствующие им списки?

Возможно ли задать фиксированную высоту блоку вывода option, так чтобы появлялся скролл если элементы не помещаются в это окно?

  Ответить  
 
 автор: sasha12345   (25.05.2016 в 18:47)   письмо автору
 
   для: sasha12345   (25.05.2016 в 18:17)
 

С первым вопросом разобрался: в php файле вывожу два списка разделенных запятой, а на странице вывода разбиваю эту строку в массив и вывожу куда требуется
var arr_data = data.split(','); 
$('#dateTu').html(arr_data[0]); 
$('#dateFrom').html(arr_data[1]);


А со вторым пока что не получается...

  Ответить  
 
 автор: confirm   (26.05.2016 в 10:24)   письмо автору
 
   для: sasha12345   (25.05.2016 в 18:47)
 

Сервер отдает клиенту списки либо как готовый html, либо данные для списка, если html-код их получается на клиенте, и для этого удобен формат JSON. И в первом, и во втором случае необходимости в запятой нет.

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования