Михаил И.
33 сообщения
#16 лет назад
Господа помогите реализовать такой скрипт
----------------------------------------------------------
Нужно создать отправку сообщений без перехода на страницу обработки
Тоесть к примеру у меня есть форма отправки сообщений в гостевую
и надо чтобы при нажатии кнопки отправить скрипт отправлял данные на сервер но пользователя не переносило на сервер обработки
Ил Миха
56 сообщений
#16 лет назад
Google -> ajax
jquery -> ajax
Сергеевич А.
791 сообщение
#16 лет назад
А лучше jquery forms


(если только отправку, если нужно и публиковать сразу же, то не подойдет)
Сергей Д.
326 сообщений
#16 лет назад
Да вы что, зачем сюда аякс, зачем по воробью из пушки стрелять? ;-)
Всё просто:


<iframe name="frm" width=0 height=0 style="visibility:hidden"></iframe>
<form method="POST" action="..." target="frm">
... здесь ваша форма ...
<form>


Ключевой параметр здесь target="frm"
Юрий Осадчий
661 сообщение
#16 лет назад
Jquery + jquery.form

По поводу "зачем сюда АЯКС цеплять" -- так раз применив технологию можно потом уже и в более серьезных случаях использовать, тем более не такая уж и громоздкая эта технология.
Юрий Осадчий
661 сообщение
#16 лет назад
Цитата ("h4mpy"):
(если только отправку, если нужно и публиковать сразу же, то не подойдет)

С помощью этого плагина можно сделать все что угодно.
Сергей Д.
326 сообщений
#16 лет назад
Конечно, ajax - мощная и удобная вещь.
Но у человека был конкретный вопрос, и судя по вопросу он технологию эту не знает. Моё решение простое и не использует даже javascript.
Прицепив к такой простой задаче ajax, мы усложняем и серверную часть и клиентскую. Вместо того, чтобы просто отправить POST-запрос, мы сначала создаём какой-то из объектов xmlHTTPRequest (разные объекты для разных браузеров)...
Задачу это конечно решит. Пушкой тоже можно воробья уничтожить ;-)

Кстати, фрейм frm в моём решении получит ответ сервера, который может также быть js-кодом. И этот код может всякие штуки делать. Например сообщить, что "ваши данные приняты" или ещё что-то. Это вообще-то тоже есть один из приёмов ajax. Без всяких библиотек и создания объектов для асинхронных запросов. Из таких приёмов ajax и "вырос"
Юрий Осадчий
661 сообщение
#16 лет назад
Цитата ("oren"):
Конечно, ajax - мощная и удобная вещь.
Но у человека был конкретный вопрос, и судя по вопросу он технологию эту не знает. Моё решение простое и не использует даже javascript.
Прицепив к такой простой задаче ajax, мы усложняем и серверную часть и клиентскую. Вместо того, чтобы просто отправить POST-запрос, мы сначала создаём какой-то из объектов xmlHTTPRequest (разные объекты для разных браузеров)...
Задачу это конечно решит. Пушкой тоже можно воробья уничтожить ;-)

Кстати, фрейм frm в моём решении получит ответ сервера, который может также быть js-кодом. И этот код может всякие штуки делать. Например сообщить, что "ваши данные приняты" или ещё что-то. Это вообще-то тоже есть один из приёмов ajax. Без всяких библиотек и создания объектов для асинхронных запросов. Из таких приёмов ajax и "вырос"

Раз вырос из фреймов AJAX, то не зря. Объектов всего два -- для MSIE и для других браузеров, в случае jQuery это вообще за кулисами, зачем изобретать велосипед -- берем стандартные(дефакто) библиотеки и решаем вопрос за 10 минут.
Сергей Д.
326 сообщений
#16 лет назад
Цитата ("ossadchy"):
Раз вырос из фреймов AJAX, то не зря. Объектов всего два -- для MSIE и для других браузеров, в случае jQuery это вообще за кулисами, зачем изобретать велосипед -- берем стандартные(дефакто) библиотеки и решаем вопрос за 10 минут.

У человека в заголовке темы написано "Срочно", а Вы предлагаете ему разобраться как работать с новой (скорее всего) для него технологией, пусть даже и применяя удобную библиотеку.
И объектов всего не два. Для разных версий IE даже они разные:
XMLHttpRequest
ActiveXObject("Msxml2.XMLHTTP"
ActiveXObject("Microsoft.XMLHTTP"
ActiveXObject("Msxml2.XMLHTTP.4.0"
Есть браузеры, не поддерживающие и этих объектов, для них распространённые библиотеки пробуют ещё создать window.createRequest.
Если это не проходит, некоторые библиотеки работают и с фреймами, так как я описал.
Сергей В.
244 сообщения
#16 лет назад
Мини библиотека



пример внедрения



var obj = document.getElementById('obj');

var ajax = new sack(url);


ajax.onLoading = function()


{


состояние отправки запроса, тут можно выводить какой wait сообщение


}


ajax.onCompletion = function()


{


obj.innerHTML = ajax.response;


}


ajax.runAJAX();
Сергей Д.
326 сообщений
#16 лет назад
Цитата ("VistaSolutions"):
Мини библиотека



пример внедрения
...

Качнул я указанную Вами библиотеку. Всё более-менее стандартно. Посмотрите как там создаётся объект, который собственно и будет осуществлять асинхронный обмен данными:

this.createAJAX = function() {
try {
this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {


this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {


this.xmlhttp = null;
}
}


if (! this.xmlhttp) {
if (typeof XMLHttpRequest != "undefined") {


this.xmlhttp = new XMLHttpRequest();
} else {


this.failed = true;
}
}
};

Я не спорю, ajax - классно, я сам использую эту технологию. Некоторые библиотеки очень лёгкие, очень простые для усвоения.
Кстати, если человек выключит javascript в своём браузере, то конкретно эта библиотека (как и большинство остальных) не будет работать. Некоторые библиотеки на этот случай исхитряются работать с пост-запросами и фреймами конечно с урезанным функционалом.
А моё решение вообще не затрагивает js, и будет работать.

Кстати, о "простоте". О фразах типа "это за десять минут можно сделать".
Спросите у хирурга: легко ли вырезать аппендикс (аппендицит). Он ответит: "Да ничего более простого и быть не может. Пустяк!". Но "обычный" человек, не хирург как это воспримет? Для него это будет немыслимое дело!
Легко ли набросать макет простого сайтика, чистый html? Да ерунда!
Аякс внедрить? Всего 10 минут!
Так? ;-)
Сергей В.
244 сообщения
#16 лет назад
Сейчас без Javascript сложно бродить по интернету