Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: XMLHTTPRequest POST Помогите найти ошибку
 
 автор: toproot   (01.08.2010 в 13:07)   письмо автору
 
 

<html> 
<head> 
<title> NAVIGATOR </title> 
<script language="javascript"> 
var XMLHttpRequestObject = false;
if(window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); }
 function getData(dataSource, divID) {
if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("POST",dataSource);
XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(form.data); // ("data="+data)  - не работает
 }
}
</script> 
</head> 
<body> 
 <form action="/lab/navigator.php" method="post" id="form"> 
 <table border="1" align="center"> 
  <tr height="200px"><td valign="top"><code><input type="text" name="url" size="80" value=""><br /> host: <font color="green"></font> path:<font color="green"></font> <br />strlen (<input type="text" name="data" size="60" onKeyup="getData('cmd.php?f=strlen','strlen'); return false;">) <div id="strlen"> 0 </div></code></td><td><textarea name="headers" cols="50" rows="10"></textarea><br /> <input type="submit" value=" SUBMIT REQUEST "> <input type="reset" value=" RESET "></td></tr> 
 </table> 
 </form> <hr> 
   </body> 
 
</html>

Вобщем что ни делаю а данные POST не отравляет. может имя формы или чтото еще непраивгно.

  Ответить  
 
 автор: Lelik   (01.08.2010 в 13:26)   письмо автору
 
   для: toproot   (01.08.2010 в 13:07)
 

для начала надо упаковать весь код в функцию, а то при таком раскладе джаваскрипт пытается отправить данные, когда ещё не готово ДОМ-дерево


<script language="javascript"> 
function ajax() {
var XMLHttpRequestObject = false;
if(window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); }
 function getData(dataSource, divID) {
if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("POST",dataSource);
XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(form.data); // ("data="+data)  - не работает
 }
}
}
</script>
...
<input type="submit" value=" SUBMIT REQUEST " onclick="ajax(); return false;">

  Ответить  
 
 автор: toproot   (01.08.2010 в 14:45)   письмо автору
 
   для: Lelik   (01.08.2010 в 13:26)
 

прошу прощения что не обьяснил понятно, мне не нужно всю форму отправлять.
мне нужно отправить только <input type="text" name="data" onkeyup="getData('cmd.php''div'); "...
с помощю onKeyUp .
Только как в моем случае называется переменная содержащая содержимое поля data. ?
data - unknown variable.
form.data = [ObjectHTMLInputElement]
DataSource - unknown variable
где же данные из поля data тега input

  Ответить  
 
 автор: Lelik   (01.08.2010 в 14:54)   письмо автору
 
   для: toproot   (01.08.2010 в 14:45)
 

добавь полю айди

<input type="text" name="data" id="data" onkeyup="getData('cmd.php''div'); "...

и можно будет обращаться по айди

alert(document.getElementById('data').value);

  Ответить  
 
 автор: toproot   (01.08.2010 в 15:10)   письмо автору
 
   для: Lelik   (01.08.2010 в 14:54)
 

Да помогло. Благодарен.

А не подскажете, вот мне нужно в ету input вводить значение содержащее спецсимвол &
А оно после & ничего не видет. я понимаю, разделитель, может его можна екранировать и как ?

  Ответить  
 
 автор: Lelik   (01.08.2010 в 15:30)   письмо автору
 
   для: toproot   (01.08.2010 в 15:10)
 


var sVal = escape(document.getElementById('data').value);
...
XMLHttpRequestObject.send( unescape(sVal) );

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования