Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > передача данных из формы POST через Ajax


Автор: chiffa 5.5.2009, 22:14
Всем добрый вечер. Есть скрипт передачи данных из формы методом POST 

Код

.....
req.open("POST", 'modules/send.php', true);
req.send('name=' + name);
.......


вроде как все норм про при выводе в send.php $_POST ['name'] выдает что неправильный индекс. print_r($_POST); возвращяет пустой масив.


пытался используя 
Код

.....
req.open("POST", 'modules/send.php', true);
reg.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
reg.setRequestHeader('Content-Length',send_post.length);
req.send('name=' + name);
.......


страница просто обновляется и все.

Форма отправки:

Код

<form class="send_message" method='POST' onsubmit="JavaScript: send (); return false;">

<input class="inp" type="text"  id='name' value="Ваше имя" 
onfocus="if(this.value=='Ваше имя') {this.value='';}" 
onblur="javascript:if(this.value==''){this.value='Ваше имя'};" />

</form>




Может кто подскажет в чем проблема? буду признателен за помощь.

Автор: Aliance 7.5.2009, 12:13
А можно полностью код функции send()?
И какой библиотекой пользуешься (если пользуешься).

Пока что могу сказать такие вещи:
1) method='POST' - неправильно, нужно method='post'
2) onsubmit="JavaScript: send (); return false;" - неправильно, нужно onsubmit="send(); return false;"
3) Если не ошибаюсь, url скрипта должен оканчиваться на знак вопроса.

Автор: bars80080 7.5.2009, 13:54
а что, send() здесь не метод самого аякса?

Автор: Aliance 7.5.2009, 14:11
bars80080, я имел ввиду функции, а не метода:
Цитата

<form class="send_message" method='POST' onsubmit="JavaScript: send (); return false;">


Автор: Роман 7.5.2009, 14:17
Ну вообще-то правильно наверное так:

Код

req.send('name=' + document.getElementById('name').value);

Автор: Aliance 7.5.2009, 14:19
Роман, не знаю всей функции send(), которую я и попросил предоставить, нельзя сказать что правильнее. Ведь у автора вполне могло бы быть в начале функции что-то на примере следующего:
Код

var name = document.getElementById('name').value;


Кстати, chiffa, а попробуй вбить просто статический контент в GET данные, и посмотри что выдает скрипт?

Автор: bars80080 7.5.2009, 19:26
да, попутал, send() он и есть send(). 
точнее попутали, send() - это ж системная функция, как её можно предоставить?

но такой момент, что name - строго зарезервированное слово, попробуйте переименовать его везде где есть на name1. вдруг выйдет

плюс, можете перекинуть параметры непосредственно в адрес (в GET):

Код

req.open("POST", 'http://server.ru/modules/send.php?name=' + document.getElementById('name1').value, true);


который кстати, попробуйте написать абсолютным адресом с http:

Автор: Роман 10.5.2009, 22:35
Есть тысяча и один способ отладить и поймать ошибку в коде smile
Здесь поможет опыт.

Автор: nezabor 26.8.2009, 14:03
Люди извините, что вклиниваюсь в вашу тему, но есть такой вопрос 
хочу сделать тоже отправку информации из формы в базу, но не PHP а при помощи java или ещё там чего
ну например пользователь редактирует данные в форме, а страница не перезагружается а вылетает окошко с бегунком и всё типа ок

подскажите с чего начать, чтобы реализовать это

Автор: bars80080 26.8.2009, 18:07
Цитата(nezabor @  26.8.2009,  14:03 Найти цитируемый пост)
подскажите с чего начать

создайте новую тему, чтобы не путать остальных

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)