Автор |
Сообщение |
Richard Ferlow Гуру Предупреждений : 2
|
|
Есть код на 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 при обращении к нему.
Вот такие вопросы, буду благодарен за помощь. |
|
|
|
|
Richard Ferlow Гуру Предупреждений : 2
|
|
Попутно сам копаю
Вот в этом месте
Код: |
obj1 = document.getElementById('InstantMessage');
obj1.style.visibility = "visible";
obj1.innerHTML = 'Товар положен в корзину!'; |
Кто знает как мне обратиться к элементу answer, который в add2basket.php находится ?
document.getElementById - это в текущем. Я так понимаю вместо document должно быть другое |
|
|
|
|
Richard Ferlow Гуру Предупреждений : 2
|
|
Все, всё сам сделал даже удивился ) |
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
Richard Ferlow
Кинь код. Для общего развития. |
|
|
|
|
Richard Ferlow Гуру Предупреждений : 2
|
|
ДобрыйФей
Получилось всё вот так вот
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> |
|
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
Richard Ferlow
Ага, спасибо. |
|
|
|
|
|