Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   проблема с XMLHttpRequest, id присваивается null (https://javascript.ru/forum/dom-window/33497-problema-s-xmlhttprequest-id-prisvaivaetsya-null.html)

JustCrazy 25.11.2012 20:07

проблема с XMLHttpRequest, id присваивается null
 
Добрый день, расскажу по-порядку:
я подключаю query библиотеку, плагин ui.datepicker-ru.js, который мне выводит в контекстном меню календарь, я выбираю дату, она заносится в поле ввода и по этой дате я вызываю страницу, которая в свою очередь уже генерируется с базы.
Проблема в том, что дата в поле ввода заносится (обозначил id), но при запросе ей присваивается null, как будто у меня поле ввода пустое.
Подскажите пожалуйста в чем ошибка?
<html>
<head>
	<link rel="stylesheet" href="smoothness/ui.datepicker.css" type="text/css" media="screen" />
	<script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
	<script type="text/javascript" src="js/jquery-ui-personalized-1.5.3.packed.js"></script>
	<script type="text/javascript" src="js/ui.datepicker-ru.js"></script>
<script type="text/Javascript"> 
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
function searchdateedit()
{
	document.getElementById('load').innerHTML="<table width=100% align='center'><tr><td align='center'><img src='http://.../loading2.gif'></td></tr></table>";
	var param = document.getElementById('id');
	var xmlhttp = getXmlHttp()
	xmlhttp.open('GET', 'http://.../edit1.php?id='+param, true);
	xmlhttp.onreadystatechange = function() 
	{
		if (xmlhttp.readyState == 4) 
		{
		 if(xmlhttp.status == 200) 
		 {
			document.getElementById('load').innerHTML=xmlhttp.responseText;
		 }
		$(document).ready(function() { });
		}
	};
	xmlhttp.send(null);
}
</script>
</head>
<body>

<script type="text/javascript">
	var $d = jQuery.noConflict();
	$d(document).ready(function() {
		$d.datepicker.setDefaults($d.datepicker.regional['ru']);
		$d('#date').datepicker();
	});	
</script>
<table width=100%><tr><td align=center>Дата: <input type="text" id="date" size="8"><input type='button' value='Показать' onClick='searchdateedit();'></td></tr></table>
<div id='load'></div>
</body>
</html>

danik.js 25.11.2012 20:27

1) Зачем велосипедить с XMLHttpRequest, если в jQuery уже есть средства для работы с ним? api.jquery.com/jQuery.get/
2) param - это html-элемент (объект), а не строка. Нельзя его приплюсовать вот так просто к строке (можно, но получится не то)
Значение поля хранится в свойстве param.value
3) document.getElementById('id') - а где у вас элемент с id = "id" ? не вижу таких. Наверное не 'id' , а 'date' ?

JustCrazy 25.11.2012 20:42

param - это у меня переменная.. до этого плюсовал и нормально получалось.. только там было что то вроде
var param = "id=" + document.getElementById('id').value + "&id2=" + document.getElementById('id2').value;
	var xmlhttp = getXmlHttp()
	xmlhttp.open('GET', 'http://ironhand.ru/script/loc/index3.php?' + param, true);
.....
<select id='id'>
<option value=''>-</option>
</select>
<select id='id2'>
<option value=''>-</option>
</select>

<input type="text" id="date" size="8"> - а тут id

а на счет велосипедить - мне просто хочется разобраться в самой структуре и почему не получается

danik.js 25.11.2012 22:03

Цитата:

Сообщение от JustCrazy
param - это у меня переменная.. до этого плюсовал и нормально получалось.. только там было что то вроде

Вы наверно даже не вникали в свой код и в то что я вам написал.

var param = document.getElementById('id');

Сейчас param - это объект, его нельзя плюсовать к строке.

var param = document.getElementById('id').value

Сейчас param - это строка равная value объекта (элемента), тоесть все ок, можно плюсовать.

Разницу видите? Или для вас снова обе строчки кажутся одинаковыми?

Цитата:

Сообщение от JustCrazy
<input type="text" id="date" size="8"> - а тут id

И вновь ваша невнимательность.

document.getElementById('id') найдет элемент с id="id", но ни как не id="date" (а схуяли)

Чувствую напрасно трачу свое время, ибо...
Цитата:

Сообщение от JustCrazy
мне просто хочется разобраться в самой структуре и почему не получается

И это было вами написано после того, как я вам явно указал на ваши ошибки.

JustCrazy 28.11.2012 11:03

Цитата:

Сообщение от danik.js (Сообщение 217800)
Чувствую напрасно трачу свое время, ибо...

Не напрасно, спасибо, немного разобрался.. я только учусь и учиться приходится по самоучителям и постам на форумах.
реализовал через ajax


Часовой пояс GMT +3, время: 08:07.