adsl club

Справочник

Форум

Программы

Фильмы

Ресурсы

Файлообмен

Хостинг

Ростелеком
Ajax, JS - помогите доделать :)
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ
Автор Сообщение
Richard Ferlow
Гуру
Предупреждений : 2
СообщениеДобавлено: Вс 1-03-09 : 15-46    Заголовок сообщения: Ajax, JS - помогите доделать :) Ответить с цитатой

Есть код на Ajax - который кладет товар в корзину

Код:

function AjaxBasket(request)
{
         var http_request = false;
         if(window.XMLHttpRequest)
         {
                   http_request = new XMLHttpRequest();
                   if(http_request.overrideMimeType)
                   {
                            http_request.overrideMimeType('text/xml');
                   }
         }
         else if (window.ActiveXObject)
         {
                   try
                   {
                            http_request = new ActiveXObject("Msxml2.XMLHTTP");
                   }
                   catch (e)
                   {
                            try
                            {
                                      http_request = new ActiveXObject("Microsoft.XMLHTTP");
                            }
                            catch (e) {}
                   }
         }
         
         http_request.onreadystatechange = function()
         {
                   if(http_request.readyState == 4)
                   {
                            if(http_request.status == 200)
                            {
                                      obj1 = document.getElementById('InstantMessage');
                                      obj1.style.visibility = "visible";
                                      obj1.innerHTML = 'Товар положен в корзину!';
                            }
                   }
                   else
                   {
                            obj1 = document.getElementById('InstantMessage');
                            obj1.style.visibility = "visible";
                            obj1.innerHTML = '';
                   }
         }
         
         http_request.open('GET', 'http://www.*****.**/add2basket.php?'+request, true);
         http_request.send(null);
}


Собственно, несколько вопросов, ибо в JS не силен

первое
Вызываю эту функцию вот так

Код:
   <input type="button" onclick="AjaxBasket(\'f=1\')" class="oformZakaz" value="Добавить в корзину"/>


f=1 здесь как бы для примера. Выше в коде есть несколько <select> - вот как значение этих select передать в функцию, чтобы в итоге их получил скрипт add2basket.php ? Я так понимаю, тут в вызове надо дописывать, но, к сожалению, не знаю как.
Код:
 http_request.open('GET', 'http://www.*****.**/add2basket.php?'+request, true);



Вопрос второй.
Ответ об успешности операции. Насколько я понял, автор предусмотрел только такой вариант - что если add2basket.php выполнился без ошибок, то значит все в порядке. Однако же хотелось бы изменить скрипт так, чтобы вот так где
Код:
obj1.innerHTML = 'Товар положен в корзину!';
можно было вместо этого текста посылать в ответ от PHP скрипта - т.е. статус операции отображает add2basket.php при обращении к нему.

Вот такие вопросы, буду благодарен за помощь.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
Richard Ferlow
Гуру
Предупреждений : 2
СообщениеДобавлено: Вс 1-03-09 : 16-34    Заголовок сообщения: Ответить с цитатой

Попутно сам копаю Smile

Вот в этом месте

Код:
 obj1 = document.getElementById('InstantMessage');
                                      obj1.style.visibility = "visible";
                                      obj1.innerHTML = 'Товар положен в корзину!';


Кто знает как мне обратиться к элементу answer, который в add2basket.php находится ?
document.getElementById - это в текущем. Я так понимаю вместо document должно быть другое
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
Richard Ferlow
Гуру
Предупреждений : 2
СообщениеДобавлено: Вс 1-03-09 : 16-54    Заголовок сообщения: Ответить с цитатой

Все, всё сам сделал Smile даже удивился Smile)
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ДобрыйФей
Мечтатель
Предупреждений : 5
СообщениеДобавлено: Вс 1-03-09 : 16-55    Заголовок сообщения: Ответить с цитатой

Richard Ferlow
Кинь код. Для общего развития.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
Richard Ferlow
Гуру
Предупреждений : 2
СообщениеДобавлено: Вс 1-03-09 : 17-01    Заголовок сообщения: Ответить с цитатой

ДобрыйФей
Получилось всё вот так вот
ajax.js - подключается в шапке
Код:
function AjaxBasket(request)
{
         var http_request = false;
         if(window.XMLHttpRequest)
         {
                   http_request = new XMLHttpRequest();
                   if(http_request.overrideMimeType)
                   {
                            http_request.overrideMimeType('text/xml');
                   }
         }
         else if (window.ActiveXObject)
         {
                   try
                   {
                            http_request = new ActiveXObject("Msxml2.XMLHTTP");
                   }
                   catch (e)
                   {
                            try
                            {
                                      http_request = new ActiveXObject("Microsoft.XMLHTTP");
                            }
                            catch (e) {}
                   }
         }
         
         http_request.onreadystatechange = function()
         {
                   if(http_request.readyState == 4)
                   {
                            if(http_request.status == 200)
                            {
                                       obj1 = document.getElementById('InstantMessage');
                                     result = http_request.responseText;
                              obj1.style.visibility = "visible";
                                      obj1.innerHTML = 'Товар добавлен в корзину!'+result;
                            }
                   }
                   else
                   {
                            obj1 = document.getElementById('InstantMessage');
                            obj1.style.visibility = "visible";
                            obj1.innerHTML = '';
                   }
         }
         
       request = 'id='+document.getElementById('ident').value+'&color='+document.getElementById('color').value+'&size='+document.getElementById('razmer').value;
         http_request.open('GET', 'http://www.***.**/add2basket.php?'+request, true);
         http_request.send(null);
}


В результате нажатия на кнопку
Код:
<input type="button" onclick="AjaxBasket()" class="oformZakaz" value="Добавить в корзину"/>



посылаем запрос на скрипт add2basket.php - запрос GET в итоге имеет вид

add2basket.php?id=1&color=3&size=8

значения берутся от элементов формы со страницы через document.getElementById

то, что скрипт этот покажет при вызове (через echo, например), страница получит внутрь контейнера

Код:
<div id="InstantMessage"></div>
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ДобрыйФей
Мечтатель
Предупреждений : 5
СообщениеДобавлено: Вс 1-03-09 : 17-04    Заголовок сообщения: Ответить с цитатой

Richard Ferlow
Ага, спасибо. Smile
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение  
Показать сообщения:   
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ Часовой пояс: GMT + 7
Страница 1 из 1

 

 
Аватары: Вкл|Выкл   ЮзерИнфо: Вкл|Выкл   Подписи: Вкл|Выкл
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы