Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает простенький Ajax-скрипт, буквально 3-и функции 
V
    Опции темы
DjoNIK
Дата 24.6.2007, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: нет
Всего: 5



Собственно сабж
Код

<html>

<head>
  <title>777</title>
  <script type=\"text/javascript\" language=\"JavaScript\">
   function createHttpRequest()
    {
     var xmlHTTP=false;
     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 updatePage()
    {
     if(HTTPR.readystate==4)
      {
       var response = HTTPR.responseText;
       document.getElementById("city").value=response;
      }
    }
   function GetCity()
    {
     var cid;
     var HTTPR=createHttpRequest();
     cid=document.getElementById("cid").value;
     if(!cid)
      {
       alert("Пусто!!!");
       return;
      }
     var url="tmp.php?city_id="+cid;
     HTTPR.open("GET", url, true);
     HTTPR.onreadystatechange=updatePage;
     HTTPR.send(null);
    }
  </SCRIPT>
</head>

<body>
<form>
 <input type="text" name="cid" onChange="GetCity();">
 <br>
 <input type="text" name="city">
</form>

</body>

</html>


Ну и, хотя как я понимаю проблема точно не в этом, tmp.php:
Код

<?php
include("MySQL.php");

if(isset($_GET['city_id']))
 {
  $city_id=$_GET['city_id'];
  $db=new DataBase;
  $db->query("SELECT city FROM city WHERE city_id=$city_id");
  $db->nx();
  $city=$db->fn(1);
 }

?>


Так IE ругается на строчку с
Код

<input type="text" name="cid" onChange="GetCity();">

"Предпологает начличие объекта"

Это сообщение отредактировал(а) DjoNIK - 24.6.2007, 01:47


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
SelenIT
Дата 24.6.2007, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Зачем слеши перед кавычками в строках 5, 11 и 17?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
DjoNIK
Дата 24.6.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: нет
Всего: 5



Цитата

Зачем слеши перед кавычками в строках 5, 11 и 17?

smile из PHP сопировал.
Скрипт хоть ошибок не выдаёт, но и не работает: 
Код

<input type="text" name="city"> 
- не заполняется


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
SelenIT
Дата 24.6.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Так... а где в tmp.php хоть какой-нибудь вывод? Что он выдает, если запустить tmp.php?city_id=что_то в браузере напрямую?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Mymik
Дата 24.6.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 11
Всего: 78



А у меня вообще вопрос по поводу JS...
Если посмотреть на твой код, ты пытаешься получить DOM ссылку на объекты при помощи функции document.getElementById() Но у тебя нет ни единого ID в твоем примере... у тебя только Name... А Name это для POST или GET запросов... т.е. это для отправки данных используется. А для JS используются id. Так что если ты проставишь в твои input'ы нужные тебе id, тогда все будет работать ;о)

Добавлено через 2 минуты и 57 секунд
Ну и следовательно ошибка в 42 строчке приведенного тобою кода
Код

cid=document.getElementById("cid").value;

Потому что document.getElementById("cid") возвращает null. а у null не существует прототипа value.
И дальше еще 35 строчку надо посмотреть тебе. там такая же ситуация... точнее тебе нужно просто id у html элементов выставить


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
DjoNIK
Дата 24.6.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: нет
Всего: 5



По поводу id спасибо.
Вот переработанный код, который работает под IE, но Opera и FF ничего не отображают:
Код

<html>

<head>
  <title>777</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <script type="text/javascript" language="JavaScript">
     var xmlHTTP=false;
     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();
       alert("OK");
      }
     else
       alert("ERROR");

   function updatePage()
    {
     if(xmlHTTP.readystate==4)
      {
       var response = xmlHTTP.responseText;
       document.getElementById("name").value=response;
      }
    }
   function GetCity()
    {
     var cid;
     cid=document.getElementById("cid").value;
     if(!cid)
      {
       alert("ÏÓÑÒÎ!!!");
       return;
      }
     var url="tmp.php?id="+cid;
     xmlHTTP.open("GET", url, true);
     xmlHTTP.onreadystatechange=updatePage;
     xmlHTTP.send(null);
    }
  </SCRIPT>
</head>

<body>



<form>
 <input type="text" id="cid" onChange="GetCity();">
 <br>
 <input type="text" id="name">
</form>

</body>

</html>

и
Код

if(isset($_GET['id']))
 {
  $id=$_GET['id'];
  $res=mysql_query("SELECT name FROM tbl WHERE id=$id");
  $row=mysql_result($res, 0);
  $name=$row;
  echo $name;
 }
else
 {
  echo "ERROR";
 }

smile

Это сообщение отредактировал(а) DjoNIK - 24.6.2007, 15:40


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
Mymik
Дата 24.6.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 11
Всего: 78



DjoNIK, как я помню, для FF и Opera send() 51 строчка, вызывается без параметров... и кажись уже и для IE тоже без параметров вызывается...


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
DjoNIK
Дата 24.6.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: нет
Всего: 5



Цитата

как я помню, для FF и Opera send() 51 строчка, вызывается без параметров

Оно-то может и так, но не заработало :(

Это сообщение отредактировал(а) DjoNIK - 24.6.2007, 16:01


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
Mymik
Дата 24.6.2007, 16:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 11
Всего: 78



DjoNIK, 33 строчка 
Код

if(xmlHTTP.readyState == 4)

readyState 
Теперь работает везде



--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
DjoNIK
Дата 24.6.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: нет
Всего: 5



СПАСИБО!!!
Opera заработала сразу,а  FF с xmlHTTP.send() - не заработало, но вот с xmlHTTP.send(null) всё OK.
Mymik у тебя зоркий глаз и завидная внимательность  smile 


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.