Здравствуйте. Итак, нужна помочь по использованию аякса и пост запросов. Сейчас я делаю это так: Код (Text): var xmlHttp; function startAJAX(url,func,methood,data) { if (methood!="POST" && methood!="GET") methood="GET"; xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Ваш браузер не поддерживает технологию AJAX!") return false; } xmlHttp.onreadystatechange=func; xmlHttp.open("POST",url); xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); xmlHttp.send('a=5&b=4'); } В переменной url находится адрес скрипта-обработчика. И, в данном случае в этом скрипте обрабочика всего одна строчка: print_r($_POST); При этом, если я всё правильно понимаю, скрипт должен возвращать массив из переменых "а" и "b", со значениями 4 и 5 соотвественно. Однако, скрипт возвращает пустой массив. В случае, если используется GET, то всё работает и соотвествующий массив имеет нужные значения. Мне нужен именно POST запрос, т.к. в "data" будет содержаться большие по обьёму данные (но только текстовые) Так подскажите, как же мне всё-таки передать через AJAX данные POST запросом. Мне хватит всего небольшого примера, где просто передаётся как здесь например, две небольшие переменные. Но меня время очень поджимает, т.к. до понедельника мне нужно этот полностью готовый скрипт и ещё несколько, поэтмоу времени на поиск катастрофически нету(( Пытался ещё сделать через JsHttpRequest.query, как описано здесь: http://dklab.ru/lib/JsHttpRequest/ Но таким методом у меня ничего не получилось, даже вернуть пустой массив. а именно я использовал такую функцию и в ней не срабатывает даже alert('wwwww'): Код (Text): JsHttpRequest.query( url, { qwe: 'ewew' }, function qwe() { alert('wwwww'); }, true ); Подскажите пожалуйста, оч надо)) Заранее премного благодарен!
посмотри. может поможет? http://440hz.ru/trash/ajax/1/ http://440hz.ru/trash/ajax/2/ http://440hz.ru/trash/ajax/3/ http://440hz.ru/trash/ajax/4/ http://440hz.ru/trash/ajax/3/3.zip
440Hz, Может быть я что-то не понимаю, но чем это может помочь? Сам аякс я нашёл только в третьем примере, но там метод GET, а с нгим у меня всё нормально. Мне нужен POST.
научиться работать с примерами. и делать как положено. выложи все исходнки? посмотрим что атм у тебя.
На странице есть талблица такого вида: HTML: <table width="100%" border="0" cellspacing="1" cellpadding="3" id="goodstable"> <tr> <td align="center" bgcolor="#edf2f7">Название товара</td> <td align="center" bgcolor="#edf2f7">Цена</td> <td align="center" bgcolor="#edf2f7">%</td> <td align="center" bgcolor="#edf2f7">Комментарий</td> <td align="center" bgcolor="#edf2f7">Сохранить</td><td align="center" bgcolor="#edf2f7">Удалить</td> </tr> <tbody id="items"> <tr> <td align="center"><input value="" id="name5"></td> <td align="center"><input value="" id="cost5"></td> <td align="center"><input value="" id="persent5"></td> <td align="center"><textarea id="comment7"></textarea></td> <td align="center"><img src="/admin/icon/save.gif" onclick="SaveKonkyrentGood('5');" id="img5"></td> <td align="center"><img src="/admin/icon/del.gif" onclick="DoGoods('5','del','firmgoodskonkyrent');"></td> </tr> <tr> <td align="center"><input value="" id="name7"></td> <td align="center"><input value="" id="cost7"></td> <td align="center"><input value="" id="persent7"></td> <td align="center"><textarea id="comment7"></textarea></td> <td align="center"><img src="/admin/icon/save.gif" onclick="SaveKonkyrentGood('7');" id="img7"></td> <td align="center"><img src="/admin/icon/del.gif" onclick="DoGoods('7','del','firmgoodskonkyrent');"></td> </tr> </tbody> </table> В этой таблице, цифра у названия - это id записи в БД. Вот фрагмент файла с java-скрипт функциями: [js] var xmlHttp; function startAJAX(url,func,methood) { if (methood!="POST" && methood!="GET") methood="GET"; xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Ваш браузер не поддерживает технологию AJAX!") return false; } xmlHttp.onreadystatechange=func; var value='wwwwweee'; xmlHttp.open(methood,url); xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); //xmlHttp.send( { q: value } ); xmlHttp.send('a=5&b=4'); //alert(url); } function SaveKonkyrentGood(id) { var url="/ajax/sendtovars.php"; var func=save; var methood="POST"; //startAJAX(url,func,methood); JsHttpRequest.query( url, { qwe: 'ewew' }, function qwe() { /*if(responseText) { eval(responseText); return 0; }*/ alert('wwwww'); /* var html = responseJS.html; if(html) { document.getElementById('mainplace').innerHTML = html; document.getElementById('mainplace').style.visibility=''; } var place = responseJS.place; if(place && place instanceof Object) { for (var key in place) { var val = place[key]; if(val instanceof Function) continue; document.getElementById(key).innerHTML = val; } }*/ }, true ); alert('qq'); } function save() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { alert(xmlHttp.responseText); } } [/js] А вот сам файл sendtovars.php PHP: print_r($_POST); Здесь пока нет передачи параметров из полей. Но проблема пока в том, чтобы передать хоть какие-то данные из java скрипта в рнр файл имено методом POST. С методом GET проблем нет
unicross Большое спасибо... проблема в заголовке значит была. Теперь массив $_POST не пустой. громное спасибо, проблема решена))
советую для начла пользовать готовые либы. изучить их. что тм они делают и гоняют туда-сюда, а потом свое писать.