Всем привет!
2 дня никак не могу найти истину, оч нужна помосчь.
Проблема следующая.
Имеется форма содержащая в числе прочего элемент
<select id="area" size="1" name="area" multiple onClick='sel("area")'>
Задача - выбрать в данном селекте несколько пунктов и отправить из на сервер методом POST.
Я решил попробовать сделать это через ajax.
function sel(idSel)
{
alert (idSel)
var obj = document.getElementById(idSel);
/*var arrIndexes = new Object;*/
var j=0;
for (var i=0; i < obj.options.length; i++)
{
if (obj.options[i].selected)
{
j++;
var request = getXmlHttpRequest();
request.onreadystatechange = function ()
{
if (request.readyState == 4)
{
if (request.status == 200)
{
var result = document.getElementById("MyId");
result.firstChild.nodeValue = request.responseText;
} else document.write("Произошла ошибка. Обнови страничку");
}
}
var url = "project/additem.inc";//изменим адрес серверного обработчика
data = '"'+idSel+j+'='+i+'"'
alert (data)
request.open("POST", url, true); // указываем метод post
//посылаем два заголовка: тип данных и размер данных
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-Length", data.length);
request.send(data);// посыл данных, вместо null вставляем переменную с параметрами
}
}
alert ('Отправлено ')
}
// функция создания объекта XMLHttpRequest для передачи массива выбранных пунктов меню в $_POST через ajax
function getXmlHttpRequest()
{
if (window.XMLHttpRequest)
{
try
{
return new XMLHttpRequest();
}
catch (e){}
}
else if (window.ActiveXObject)
{
try
{
return new ActiveXObject('Msxml2.XMLHTTP');
} catch (e){}
try
{
return new ActiveXObject('Microsoft.XMLHTTP');
}
catch (e){}
}
return null;
}
</script>
Проблема в том, что со стороны PHP скрипта переменная $_POST['area1'] пуста.
Есть ощущение что я что то недопонимаю в теории.
Помогите разобраться.