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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу разобраться с ajax, не передается id из урла 
:(
    Опции темы
sayber
Дата 11.1.2007, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

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



Вот код js

Код

var request;

function doLoad(url) {
  if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
    request.onreadystatechange = processRequestChange;
    request.open("GET", url, true);
    request.send(null);
  } else if (window.ActiveXObject) {
    request = new ActiveXObject("Microsoft.XMLHTTP");
    if (request) {
      request.onreadystatechange = processRequestChange;
      request.open("GET", url, true);
      request.send();
    }
  }
}


function getRequestStateText(code) {
  switch (code) {
    case 0: return "Uninitialized."; break;
    case 1: return "Loading..."; break;
    case 2: return "Loaded."; break;
    case 3: return "Interactive..."; break;
    case 4: return "Complete."; break;
  }
}


function processRequestChange() {
  document.getElementById("resultdiv").style.display = 'none';
  abortRequest = window.setTimeout("request.abort();", 10000);

  if (request.readyState == 4) {
    clearTimeout(abortRequest);

    if (request.status == 200) {
      document.getElementById("resultdiv").style.display = 'block';
      document.getElementById("responseHTML").innerHTML = request.responseText;
    } else {
      alert("Не удалось получить данные:n" + request.statusText);
    }
    document.getElementById("loading").style.display = 'none';
  }

  else if (request.readyState == 3 || request.readyState == 1) {
    document.getElementById("loading").style.display = 'block';
  }
}


ссылки такого типа

Код

<ul id="tabSet">
<li><a id="1" onClick="doLoad('conf.php?id='+document.getElementById('1'));">Описание</a></li>
<li><a id="2" onClick="doLoad('conf.php?id='+document.getElementById('2'));">Программа</a></li>
<li><a id="3" onClick="doLoad('conf.php?id='+document.getElementById('3'));">Докладчики</a></li>
<li><a id="4" onClick="doLoad('conf.php?id='+document.getElementById('4'));">Место проведения</a></li>
<li><a id="5" onClick="doLoad('conf.php?id='+document.getElementById('5'));">Регистрация</a></li>
</ul>


вывод добра

Код

    <div id="resultdiv" style="display: none;">

        <span id="responseHTML"></span>
  
    </div>


в пхп  файле у меня 

Код


 header("Content-type: text/plain; charset=windows-1251");
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);

  
 if (isset($_GET['id']) == 1) {

print "bla bla";

}


 if (isset($_GET['id']) == 3) {

print "bla bla 2";

}



 if (isset($_GET['id']) == 2) {

print "bla bla 3";

}



Суть вопроса в следующем: Я хочу через ссылку передавать значения в js . ну то есть к  примеру conf.php?id=2

Выше описанный  код работает только по первой ссылке, 

Что не так и что я не понял. 
Если честно то js я почти не знаю

Это сообщение отредактировал(а) Aliance - 12.1.2007, 02:13
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Nicholas_S
Дата 11.1.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



...document.getElementById('1')

1. ID элемента должно начинаться с лат. символа или знака подчеркивания
2. выражение возвращает указатель на объект, но никак не значение его свойства, как, например, этот код:

document.getElementById('1').value


--------------------
...все в мире относительно
PM   Вверх
sayber
Дата 11.1.2007, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

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



Всеравно тоже самое.... Не передаеться в php файл данные
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
zera
Дата 11.1.2007, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 19.1.2006
Где: saint-petersburg

Репутация: 2
Всего: 9



так понимаю, что имелась ввиду конструкция 
Код
<a id="1" onClick="doLoad('conf.php?id='+this.id);">
 
а не передаются - это как? не уходит request или js-функция не вызывается, или на сервере id=null?
PM MAIL   Вверх
Nicholas_S
Дата 11.1.2007, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



окей, поправил. 
Теперь PHP:
Набираешь в Гугле "PHP isset", идешь по первой ссылке и читашь, что возвращает функция.


--------------------
...все в мире относительно
PM   Вверх
sayber
Дата 11.1.2007, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

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



при старом коде TRUE
В пхп файле переменную принимать как $_GET['id']  ??? 
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Aliance
Дата 12.1.2007, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



sayber, функцию doLoad() перепиши - в IE версии должно содержать вызов сперва Msxml2.XMLHTTP, затем при неудаче Microsoft.XMLHTTP объект ActiveX.

Код php перепиши на такой:
Код

header("Content-type: text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

if (isset($_GET['id'])) {

    if ($_GET['id'] == 1) {
        print( 'bla bla 1' );
    }

    if ($_GET['id'] == 2) {
        print( 'bla bla 2' );
    }

    if ($_GET['id'] == 3) {
        print( 'bla bla 3' );
    }

}



Это сообщение отредактировал(а) Aliance - 12.1.2007, 02:18
PM MAIL WWW ICQ Skype   Вверх
sayber
Дата 12.1.2007, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

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



А пример можно?? Я лично не чего не понял из того что ты написал.
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Nicholas_S
Дата 12.1.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



sayber, он говорит, что для начала тебе нужно попробовать создать объект Msxml2.XMLHTTP вместо Microsoft.XMLHTTP , затем, в случае неудачи, уже текущий.
Плюсом, переменная id может принимать лишь 1 значение за раз, поэтому для корректности кода следует воспользоваться конструкцией 
if () elseif, либо switch ().


--------------------
...все в мире относительно
PM   Вверх
sayber
Дата 12.1.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

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



я понял что надо создать... как ???
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Nicholas_S
Дата 12.1.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Намекаю:
Код

request = new ActiveXObject("Microsoft.XMLHTTP");



--------------------
...все в мире относительно
PM   Вверх
sayber
Дата 12.1.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

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



Черт его знает... просто с html все работает а с php нет.....
Посмотрите чтоб понять  в чем суть... аттач

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  ajax.zip 22,92 Kb
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
Aliance
Дата 12.1.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



sayber, сдесь НЕ делают скрипты на заказ. Вам в раздел работа. Я вам указал на вашу ошибку, извольте поискать по форуму поиском - сrриптов инициализации XMLHTTPRequest море. Можете поискать в интернете, те же XMLHTTPRequest, или AJAX, или (что имхо лучше) JSHTTPRequest. Так же зайдите в раздел "Наши скрипты" и там есть прикрепленная тема для вас. Учитесь искать информацию. Когда найдете, перепишите - если все равно не заработает - то приходите сюда, пишите заного ваш уже исправленный код и ошибку, которую выдает.
PM MAIL WWW ICQ Skype   Вверх
sayber
Дата 12.1.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 30.7.2006
Где: Moscow - qwerty

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



Возможно ты и прав.... но я бы не стал сюда вообще писать если бы ответы нашел в сети. А их нет.... 
Не один знающий человек не написал нормальной поясняющей статьи.

вот это для этого.
сдесь такой то код который делает то то.... 
Тут вывод
А здесь у нас ссылка такого вида.....



Перерыл я форум и что???? формы формы и все не нудное.... 

Мне нужен простой ответ. Что надо написать или изменить чтоб по ссылке подгружался html или любой другой файл  с параметрами из ссылки.


2 дня а ответа толкового так и нет.... ни где.

Кстати id возвращает undefined

Это сообщение отредактировал(а) sayber - 12.1.2007, 17:40
--------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~WoW CafeSayber ©  Портфолио ~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM MAIL WWW ICQ   Вверх
12345c
Дата 12.1.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



А разве будет корректно работать везде id, выглядящий как число? На чтение работает, но на выборку объекта - ...? Они должны быть именами.

Добавлено @ 18:33 
2) что подразумевается под document.getElementById('a1').value ? этот объект - ссылка, она не имеет такого свойства, и, конечно, возвращает "undefined". Может быть, Вы хотели 
Код
<li><a id="a3" onClick="doLoad('ajaxstudio.php?id='+this.id);">Докладчики</a></li> ?
3) далее идёт грубая ошибка, которую браузер игнорирует, но зачем? "<div id="resultdiv" " повтояется 5 раз. (id джб уникальны). То же со <span id="responseHTML">.
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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