Fesky: Такое может произойти, когда картинка не успела загрузится. Причины могут быть разные - может Ваш хостинг отдавал медленно, может страничка очень тяжелая и т.д.
Да, вот это уже хуже. Хотя странное дело, настоено так, что сперва грузится как раз часть, где описание и картинки, а потом уже все остальное.
function loadData2(page){ $.ajax ({ type: "POST", url: "/file/info2.php", data: {page : page}, success: function(msg) { $("#blokajax2").ajaxComplete(function(event, request, settings) { $("#blokajax2").html(msg); var vbz='Чего там надо'; loadData4(vbz); }); } });
}
а можете показать как это написать без loadData4. Допустим load data4 просто нет.
Не работает. Так как если сделать всё как вы показали - то /index_mail.php перезагружается (т.е. постоянно в броузер - веб консоль) идет обращение к файлу
Причем дело именно в вызове loadData4. Так как если его убрать, то данные загружаются 1 раз.
Если Вам нужна не строка а сама форма то и ложите туда разметку формы: $("#blokajax4").html('<div><input type=text/><br/><textarea></textarea></div>');
код формы очень! длинный.
---------- Добавлено 19.09.2013 в 15:59 ----------
izbushka: Вместо строки $("#blokajax4").html('форма отправки письма'); делаете еще один ajax запрос, в success функции которого пишете эту строку
Вы пишете "делаете еще один ajax запрос, в success функции которого пишете эту строку" - а я понять не могу, что и куда.
какую строку писать и куда.
Если мне там нужна форма из файла, который я выше указал. А в файл формы надо передать переменную vbz, полученную путем сериализации 9помоему так наз) формы.
строку вида - $("#blokajax4").html('форма отправки письма');
В страницу текст "форма отправки письма" выводит.
Так вот уже по разному пробовал - сама форма не выводится.
Вот и не могу понять - как вместо строки, вывести форму. Строка то выводится.
---------- Добавлено 19.09.2013 в 13:30 ----------
izbushka:
Вы думаете что тут loadData4(vbz) выполнится после загрузки данных в loadData2, а на самом деле, они выполнятся практически одновременно, не дожидаясь данных. Надо засунуть loadData4 в success от loadData2
Да, дума так. Сейчас ещё раз устрою мозговой штурм. ((
izbushka: Дело в том, что селектор $('#blokajax4... не сработает, т.к. элемента #blokajax4 еще нет в DOM. Он появится только после успешно выполнения loadData4(vbz);.
Вам нужно выполянять функцию по этому селектору в success: блоке запроса ajax
форма не подгружается во втором варианте.
В первом и форма подгружается и срабатывает клик по кнопке "отправить".
---------- Добавлено 19.09.2013 в 13:24 ----------
Я не силен в этом, но честно говоря надеялся что по порядку функции сработают.
Сперва loadData2, а затем loadData4, а соответственно после полной подгрузки 2-й, уже и есть див для 4-й. Как то так.
Такое может произойти, когда картинка не успела загрузится. Причины могут быть разные - может Ваш хостинг отдавал медленно, может страничка очень тяжелая и т.д.
Да, вот это уже хуже. Хотя странное дело, настоено так, что сперва грузится как раз часть, где описание и картинки, а потом уже все остальное.
Он таки есть. И возникает из-за ajaxComplete. Перечитайте мои сообщения
аллилуйя, форма добавлена.
Осталось разобраться
куда поставить код, чтобы при первой загрузке форма пустая была, и чтобы при нажатии кнопки реакция была
Что тут странного?
Не понимаю вас.
Вы сказали - цикл где то на моей стороне, так как в маленьком кусочке кода, который мы с вами видит в теме - цикла нет.
А я написал - странно, ведь если закомментить вызов функции 4, то цикла нет.
Про передачу переменной, ответьте, пожалуйста.
А зачем вам $("#blokajax2").ajaxComplete?
Сделайте без нее
Согласен и понимаю, но странно - ведь если закомментить
loadData4(vbz);
то цикла нет.
---------- Добавлено 19.09.2013 в 16:45 ----------
Подскажите, пожалуйста, заодно здесь спрошу.
Хочу в js передать значение переменной.
файл php
<script type="text/javascript" src="new.js">
var myvar = "<?php echo $module;?>";
</script>
как в new.js получить переданную переменную? тоже измотался, но нет в рунете ответа.
Это ужас..
а можете показать как это написать без loadData4. Допустим load data4 просто нет.
Не работает. Так как если сделать всё как вы показали - то /index_mail.php перезагружается (т.е. постоянно в броузер - веб консоль) идет обращение к файлу
Причем дело именно в вызове loadData4. Так как если его убрать, то данные загружаются 1 раз.
Если Вам нужна не строка а сама форма то и ложите туда разметку формы:
$("#blokajax4").html('<div><input type=text/><br/><textarea></textarea></div>');
код формы очень! длинный.
---------- Добавлено 19.09.2013 в 15:59 ----------
Вместо строки $("#blokajax4").html('форма отправки письма'); делаете еще один ajax запрос, в success функции которого пишете эту строку
Вы пишете "делаете еще один ajax запрос, в success функции которого пишете эту строку" - а я понять не могу, что и куда.
какую строку писать и куда.
Если мне там нужна форма из файла, который я выше указал. А в файл формы надо передать переменную vbz, полученную путем сериализации 9помоему так наз) формы.
Я ж вам сказал:
loadData4(''); поместить после $("#blokajax2").html(msg); в функции loadData2.
А $('#blokajax4 .pagination2 .active2').... после $("#blokajax4").html(msg); в loadData4.
Может поломаться первая страница (которая уже с blokajax4), нужно знать всю логику чтоб сказать точно.
В таком варианте - вебконсоль браузера показывает постоянную подгрузку /sendmail/mail.php
т.у. функция loadData4 зациклилась.
Ладно - решил сделать вообще по другому, раз с формой такой гемор.
Спасибо большое что уделили время.
Сделаю просто на один див в коде больше и не буду див в див подгружать. Для формы всегда будет в коде.
И все таки если кто то покажет как конкретно код написать - буду рад.
Есть
все работает , текст появляется "форма отправки письма".
Как впихнуть форму, которая находится по урл
Понятно, спасибо.
Я же сразу написал - что не силен в этом.
Я думаю для спеца код вполне простой, просто нужно чтобы у спеца было 5 минут времени мне помочь. Спасибо.
в файле ajax сделал, это единственное что приходит в голову
В файл ajax ставил уже после
$("#blokajax2").html(msg);
строку вида - $("#blokajax4").html('форма отправки письма');
В страницу текст "форма отправки письма" выводит.
Так вот уже по разному пробовал - сама форма не выводится.
Вот и не могу понять - как вместо строки, вывести форму. Строка то выводится.
---------- Добавлено 19.09.2013 в 13:30 ----------
Вы думаете что тут loadData4(vbz) выполнится после загрузки данных в loadData2, а на самом деле, они выполнятся практически одновременно, не дожидаясь данных.
Надо засунуть loadData4 в success от loadData2
Да, дума так. Сейчас ещё раз устрою мозговой штурм. ((
Дело в том, что селектор $('#blokajax4... не сработает, т.к. элемента #blokajax4 еще нет в DOM. Он появится только после успешно выполнения loadData4(vbz);.
Вам нужно выполянять функцию по этому селектору в success: блоке запроса ajax
форма не подгружается во втором варианте.
В первом и форма подгружается и срабатывает клик по кнопке "отправить".
---------- Добавлено 19.09.2013 в 13:24 ----------
Я не силен в этом, но честно говоря надеялся что по порядку функции сработают.
Сперва loadData2, а затем loadData4, а соответственно после полной подгрузки 2-й, уже и есть див для 4-й. Как то так.