|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 29
|
|||||||||||
ajaxLoad - окно в окне после запроса. Как убрать?12.08.2012, 00:45. Показов 2010. Ответов 10
Метки нет (Все метки)
Помогите пож
Есть JS код
Список в HTML выглядит вот так:
Как бы все нормально работает, только в инфо диве после вывода нужной формы появляется все окно - из которого был сделан ajax запрос. Тоесть то старое окно с инфо дивом. И в єтом инфо диве такое же окно, только еще и с формой, которая должна была быть в инфо диве. Как убрать не подскажете чтобы в инфо диве не появлялось все окно, а только форма и все. ? Мож кто знает?
0
|
|||||||||||
| 12.08.2012, 00:45 | |
|
Ответы с готовыми решениями:
10
Как можно убрать окно запроса пароля Database Login при запуске? Как создать окно в окне (модальное окно)? Показать модальное окно после AJAX-запроса |
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 12.08.2012, 01:15 | |
|
zbs2000, на какой помойке вы выкопали столь древний скрипт?
1. на хрена комментарии в скриптовом блоке? 2. на хрена функция getObj (), если в других функциях вы её не используете, а прямо пишете единственный метод getElementById ()? 3. на хрена "application/x-www-form-urlencoded" и метод post, если посылаете чисто текст и без всякой формы? и прочее-прочее-прочее... AJAX - удивительно простая технология. Вся она свободно укладывается в пять-шесть строчек кода. У вас же... посчитайте сами. Попытки "заумничания" ведут к глупейшим ошибкам. ----- По сути помочь вам трудно, ибо, во-первых, вы не дали HTML-кода тега <SELECT>, а дали его заготовку с PHP-вставками; во-вторых - вы не дали HTML-кода тега с id="info", в котором у вас и возникают проблемы.
0
|
|
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 29
|
|||||||||||||||||||||||||||||||||||||||||
| 12.08.2012, 17:11 [ТС] | |||||||||||||||||||||||||||||||||||||||||
|
Скрипт взял на форуме. В нем только поменял кодировку. Так как смог предположить что кодировка как-то могла влиять. Экспериментальным путем узнал что она не влияет. Ну так и осталось. UTF-8 поставил потому, что сайт на этой кодировке.
getObj - взял там же на форуме. info div пустой вообще <option>выводится вот так:
Сильно не пинайте пожалуйста. Что такое Ajax узнал неделю назад. Но уже чувствую что технология хорошая. Прошу прощения за некоторые "кривые" вопросы и попытки путей решения. Постараюсь как можно быстрее сократить путь к "красивым" вопросам. Зараннее благодарен
0
|
|||||||||||||||||||||||||||||||||||||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 12.08.2012, 18:08 | |
|
Повторяю!
Нужен браузерный код (браузерный, а не заготовка со вставками PHP-кода) того, что написано в открывающем теге <SELECT>. <select style="width: 200px; height: 21px" name="single" id="single" onchange="что_именно_ВИДИТ_БРАУЗЕР_здесь?"> Запустите страницу в браузере, посмотрите "Исходный код" и сделайте копи-паст сюда. ----- * HTML-код тегов <OPTION> не нужен. * PHP-код не нужен совсем.
0
|
|
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 29
|
|||||||||||
| 12.08.2012, 20:51 [ТС] | |||||||||||
|
ок сейчас сделаю 1 мин
Добавлено через 5 минут По Ctrl-U Firefox
Странно на экране у меня div info не пустой. А в коде :
0
|
|||||||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| 13.08.2012, 00:24 | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ну давайте разберём то, что вы написали в onchange
Первый оператор: getObj ('info').disabled = ''; Это что? Тег с id="info" - это у вас <DIV>. Где и когда вы видели "задисабленный" тег <DIV>? В какой-такой страшной сказке? Читаем стандарт HTML4.01 и видим, что атрибут DISABLED поддерживается только у тегов <BUTTON>, <INPUT>, <OPTGROUP>, <OPTION>, <SELECT> и <TEXTAREA>. В HTML5 этот атрибут поддерживают ещё и теги <COMMAND>, <FIELDSET> и <KEYGEN>. Ну и где вы тут <DIV> видите? Ладно, про AJAX вы узнали неделю назад... А про HTML вы когда узнали? Две недели назад? ![]() Вычёркиваем, как полную и бесполезную глупость. Согласны? ----- Второй оператор: ajaxLoad ('info', '/cab/rol_admin.php?single=' + this.options [this.selectedIndex].value + '&add_rol_subgr=' + document.getElementById ('subgr').options [document.getElementById ('subgr').selectedIndex].value, '', '', '') Вызываете функцию ajaxLoad (), которой передаёте два аргумента и три пустоты. Почему здесь не воспользовались функцией getObj () при обращении к элементу с id="subgr"? Или эта функция у вас предназначена только для глупого "задисабливания" div'ов? Запись ведь станет короче на десяток символов: ajaxLoad ('info', '/cab/rol_admin.php?single=' + this.options [this.selectedIndex].value + '&add_rol_subgr=' + getObj ('subgr').options [getObj ('subgr').selectedIndex].value, '', '', '') Согласны? ----- Итак вызвали функцию. Рассматриваем её.
Объект HTTP-реквест выполняется ВНЕ функций (по крайней мере при назначении ему onreadystatechange) и должен поэтому быть ГЛОБАЛЬНЫМ. Значит, var здесь никоим образом прописывать нельзя - первую строку функции вычёркиваем. Далее:
Но почему опять не используем getObj ()? Переписываем:
Проще будет так (в одну строчку):
Далее:
Далее:
Когда поименованную функцию назначают скриптом - прописывать можно только имя функции. Вот так: ajaxObj.onreadystatechange = ajaxCallBack; И никаких скобок! Передать поименованной функции аргументы при скриптовом назначении НЕЛЬЗЯ! Как только прописываете скобки, то функция не назначается, а моментально исполняется. И это не AJAX - это проcтой Javascript, о котором вам, видимо, не повезло узнать ни неделю назад, ни две... Значится, переписываете, как указано выше, без скобок. Далее:
Но чего вы тут отменяете самой последней строкой функции? Событие onchange отменить нельзя. Строка эта бесполезна. Вычёркивайте. ----- Разбирать далее надо функцию ajaxCallBack (). Но "рука бойца колоть устала"... разбирать бред неохота. Поэтому просто быстренько напишу рабочий вариантик:
В общем, как видите, если не писать с умным видом глупости, то всё уложится в пять-шесть строк.
1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 29
|
||||||
| 14.08.2012, 01:03 [ТС] | ||||||
|
Ого спасибо. Сейчас только не спеша прочитаю и попробую, чтобы не задавать больше глупых вопросов .
Добавлено через 18 минут Ого спасибо. Сейчас только не спеша прочитаю и попробую, чтобы не задавать больше глупых вопросов . Добавлено через 10 часов 50 минут Сейчас скрипт имеет такой вид. Пробовал сделать согласно Ваших подсказок. Но при этом функциональность либо нарушалась либо вообще исчезала. Это проявлялось в следующем: 1) при убирании скобок для вызова функции сдесь ajaxObj.onreadystatechange = ajaxCallBack(obj,ajaxObj,(callback?callb ack:null)); Когда убрал вообще ничего не выводилось. Вы можете сказать что надо еще и функцию ajaxCallBack заменить на Ваш вариант. Делал это и получилось еще интереснее все стало выводиться в div info. А там надо сначала выводить на одни id потом на другие. Получается из функции ajaxLoad изнутри надо управлять выводом. Тоесть подставлять то одни ид то другие. А он то и делалось как раз в тех скобках, что я попробовал закомментировать. Там все подставлялось. А разве той функции вредит то что она исполняется немедленно ? Ведь ajaxLoad то вызывается из HTML много раз с разными параметрами. И он и ajaxCallBack и ajaxLoad должны исполняться немедленно ? правильно? 2) А можно еще спросить что вот это ('v' == '\v') делает? Точнее что означает. Я понял что браузер определяет по всей видимости. Если есть дока и долго рассказывать бросьте ссылкой пож. 3) А страницу в странице так как выводило так и выводит не зависимо от всего выше написанного. Интуитивно почувствовал что это где-то в функции ajaxCallBack наверно. Там же ж вывод правильно? А да еще пробовал Ваш вариант полностью - тоже самое - в info div запихивает всю старую страницу.
0
|
||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||||
| 15.08.2012, 04:23 | ||||||
|
1. ajaxObj - это у вас ОБЪЕКТ.
А любому объекту можно назначить любое нужное вам свойство и этому свойству дать нужное вам значение. И кто вам мешает перед ajaxObj.onreadystatechange = ajaxCallBack; ajaxObj.send (); прописать ajaxObj.conteinerID = obj;, а в моём варианте функции ajaxCallBack () прописать getObj (ajaxObj.conteinerID).innerHTML = ajaxObj.responseText;? И таким образом закрыть проблему разных контейнеров для вывода респонса. Ещё раз - назначать поименованную функцию на событие можно только указанием имени функции безо всяких скобок после имени. У этого правила НЕТ исключений!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2.
И уберите вы всю ненужную муть - defMessage, post, callback вам для вашей задачи не нужны. Уберите их из определений функций, и все упоминания этих ненужностей внутри функций также уберите. Соответственно, и при вызове вам не надо будет три пустоты прописывать.
1
|
||||||
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 29
|
||||||
| 15.08.2012, 13:00 [ТС] | ||||||
|
>>И уберите вы всю ненужную муть - defMessage, post, callback вам для вашей задачи не нужны.
сейчас буду убирать Добавлено через 1 час 5 минут Вот что получилось в итого:
0
|
||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||||
| 15.08.2012, 13:16 | ||||||
|
zbs2000, комментарии уберите (которые после <script> и перед </script>), в данном случае они не нужны.
Да и самую первую функцию упростите до
0
|
||||||
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 29
|
|
| 15.08.2012, 14:26 [ТС] | |
|
убрал \ упростил ...
Да ладно ниче. Спасибо. Переделал шаблон без излишков css и внешних функций. И заработало. Может оно с чем-то там конфликтовало. Правда ошибок не видно было. Сейчас шаблон просто легче стал.
0
|
|
| 15.08.2012, 14:26 | |
|
Помогаю со студенческими работами здесь
11
Как создать окно в окне? Как убрать панель на окне формы? Как правильно сделать окно в окне
Как в окне msgbox отобразить результаты запроса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|