Ajax+php (автоматизация)

CrashX

В прошлом XSiteCMS
Регистрация
6 Июн 2008
Сообщения
681
Реакции
114
[как сделать] загрузка любых данных в модальное окно на jquery

есть страницы которые содержат
ссылки, формы в общем обычный сайт
--
чего хочется
загрузка html(точнее чего угодно, любой страницы...) в модальное окно на jquery
и что бы в ишаке работало, хотя бы в IE7, от IE6 отучу сам
--
-в админке есть галочка ajax (уже реализовано) =)
--единый обработчик, скажем я кликаю по ссылке открывается модальное окно (по адресу указанному в <a href='')
что нужно написать для Jquery что бы такое использовать
пока по галочке грузится только либа JQ )
 
Как вариант, можно использовать любой "Лайтбокс", который умеет показывать урлы в iframe (обычно лайтбоксы сами берут данные из href), например fancybox а потом его подключить
Код:
		$("a").fancybox({
		'zoomSpeedIn': 300,
		'zoomSpeedOut': 300,
		'overlayShow': false,
		'frameWidth':800,
		'frameHeight':parseInt($(window).height()-100)
		});
Конечно можно не все линки захватить, а только у которых указан определенный класс "open_frame"
Код:
$("a.open_frame").fancybox({...
 
ифрейм не лучшее решение, тк есть мульбокс, он без ифрейма
нет возможно не так обяснил нашел на мутулс, но его не хочу
хочу JQuery
на мутулс это MultiBox

что мне нужно
есть ссылка вида

<a rel='modalbox' href='хттп://мойсайт.ру/новости/12-09-09.хтмл' title='" . _LOST_PASSWORD . "'>" . _LOST_PASSWORD . "</a>
ключевое слово rel='modalbox'

зачем так?!
так проще всего, сама модальная форма универвальна ибо имеет кнопку закрть, значит в нее можно грузить все...

теперь с картинками это LightBox (там rel='lightbox') и кусочек кода для обработки, теперь тоже самое хочу для всего остального,


не хочу мутулс ставить, тк использую JQ (возможно потом перейду на JQuery UI)
 
Попробуй


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

HTML content
Scrolling HTML content
AJAX content
Dynamic AJAX content
Iframe content
Iframe with form
Display flash
YouTube w/fade effect

Вообще highslide - это универсальный инструмент вывода любой информации на странице.
Будут вопросы - пиши.
 
все бы хорошо, но
это не расширение JQuery, тогда проще использовать JQuery UI (но из-за сложной стилизации нет большого желания), а JQuery знаком в общих чертах...
---
я не хочу использовать дестяки сторонних библиотек и потом напоротся на несовместимость, с JQ, такое событие минимально

Добавлено через 47 минут
вот мультибокс
но это мутулс а мне надо JQuery
 
все решено использую Для просмотра ссылки Войди или Зарегистрируйся
<a rel='#overlay' href='" . $link['login'][SEO] . "' title='" . _ENTER . "'>" . _ENTER . "</a>
код
в начале страницы
<script language="Javascript" type="text/javascript" src="' . JSCRIPT_DIR . 'jquery.overlay.js"></script>
<link rel="stylesheet" type="text/css" href="' . JSCRIPT_DIR . 'jquery.overlay.css">
<script type="text/javascript">
$(function() {

// if the function argument is given to overlay,
// it is assumed to be the onBeforeLoad event listener
$("a[rel]").overlay({

mask: \'darkred\',


onBeforeLoad: function() {

// grab wrapper element inside content
var wrap = this.getOverlay().find(".contentWrap");

// load the page specified in the trigger
wrap.load(this.getTrigger().attr("href"));
}

});
});
</script>

и сам диалог
<!-- overlayed element -->
<div class="apple_overlay" id="overlay">

<!-- the external content is loaded inside this tag -->
<div class="contentWrap"></div>

</div>
 
теперь
задача усложняется
---------
нужно сделать автозавершение форм
те
-
в этом модальном окне нажимаю отправить и форма отправляется и данные уходят

но без ответа, а если есть ответ то его хорошо бы получить в тоже окно, приходит в это же модальое окно
--
есть может у кого идеи, что бы не писать тонны кода
 
новая трабла
есть плагин JQuery.form.js
последний
при отправке отвсе отправляет,
сделал что бы ответ отправлял в это модльное окно,
долго бился головой, но когда начал отлаживать выявил что он не отправляет
$_SERVER['HTTP_X_REQUESTED_WITH']
нет ни пустого не равого искомому 'XMLHttpRequest'
поэтому грузится вся страница а не ее часть (
зло, выделять в отдельный фаил обработчик не есть хорошо, может есть как поправить плагин ?

при обычное загрузке
Array
(
[HTTP_USER_AGENT] => Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00
[HTTP_HOST] => Для просмотра ссылки Войди или Зарегистрируйся
[HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en;q=0.8
[REQUEST_METHOD] => GET
[QUERY_STRING] => XDEBUG_SESSION_START=netbeans-xdebug
)


при загрузке модального окна
Array
(
[REDIRECT_STATUS] => 200
[HTTP_X_REQUESTED_WITH] => XMLHttpRequest
[HTTP_ACCEPT] => text/html, */*, text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
[HTTP_USER_AGENT] => Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00
[HTTP_HOST] => Для просмотра ссылки Войди или Зарегистрируйся
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en;q=0.8
[HTTP_ACCEPT_CHARSET] => iso-8859-1, utf-8, utf-16, *;q=0.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => x=login
[REQUEST_URI] => /login/index.html
)

при обновлении данных в модальном окне
Array
(
[REDIRECT_STATUS] => 200
[HTTP_USER_AGENT] => Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00
[HTTP_HOST] => Для просмотра ссылки Войди или Зарегистрируйся
[HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en;q=0.8
[CONTENT_LENGTH] => 327
[CONTENT_TYPE] => multipart/form-data; boundary=----------yv1yjDb2w5hAXNvytlHGg5
[REQUEST_METHOD] => POST
[QUERY_STRING] => x=login
[REQUEST_URI] => /login/index.html
)
 
проблема исчерпана, как говорится решать и не жди что ее кто то решит за тебя
в формах НЕЛЬЗЯ использовать
не enctype='application/x-www-form-urlencoded'
не enctype='multipart/form-data'
и лшуче вообще не использовать enctype
если это убирать то данные получаю, но у меня теперь другая проблема,
---
как ни странно в алерт данные грузялся ав целевой див нет )
странно...
кто вообще работал с плагином JQuery.Form ?
 
Код:
<script type="text/javascript">
  $(document).ready(function(){
    var options = {
//      target: "#modalbox",
      url: "{action}",
      success: showResponse, // функция, вызываемая при получении ответа
      type: "post", // get или post
      dataType: "html", // text, hmtl, xml, script или json
      //clearForm: true,
      //resetForm: true,
      timeout: 3000 // ожидание ответа
    };
    $("#userform").submit(function() {
      $(this).ajaxSubmit(options);
      return false;
    });
  });
// Debug
function showResponse(responseText, statusText, xhr, $form)  {
    alert("status: " + statusText + "\n\nresponseText: \n" + responseText +
        "\n\nThe output div should have already been updated with the responseText.");
   $("#modalbox").html(responseText);
}
</script>

ненравится мне костыль вида
***
success: showResponse, // функция, вызываемая при получении ответа
****
function showResponse(responseText, statusText, xhr, $form) {
alert("status: " + statusText + "\n\nresponseText: \n" + responseText +
"\n\nThe output div should have already been updated with the responseText.");
$("#modalbox").html(responseText);
}
странно при отправке формы все уходит, получаем ответ
я его вижу в алерте, в а целевой див указанный выше
не чего не попадает, ни в этот не в другой указанный на странице, или на самой форме,
а с попошью костыля работает но, почему не работает без него ?
---
еще
костыль костылем, но возникла исключительная ситуация когда
-------
есть модальное окно в которе грузится форма, она посылается данные на страницу 2, та обрабатывает и отдает ответ,
ответ об ошибке попадает в модальное окно что и нужно, но если человек авторизовался то беда, ответ приходит 0, те
если рассмотреть это же без аякса то
форма на странице 1 передает данные на страницу 2, если все плохо то ошибка, если все хорошо, происходит перезагрузка страницы и все...
-
так вот с аяксом модальное окно остается пустым)
как бы его закрыть в случае такого ответа ?
 
Назад
Сверху