Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не могу создать объект для отправки AJAX запроса на сервер
Форумы портала PHP.SU » » Вопросы новичков » Не могу создать объект для отправки AJAX запроса на сервер

Страниц (2): [1] 2 »
 

1. teddy - 23 Июля, 2013 - 18:19:31 - перейти к сообщению
Добрый день. Почему-то не создается объект для отправки AJAX запроса на сервер. Скрипт очень простой, он принимает текущее время на сервере, которое отправляется при помощи кастомного HTTP заголовка. Заголовки на сервере проверял, всё отправляется корректно. Можете помочь мне решить эту проблему? Буду очень рад! А вот собственно сам код:

Универсальный способ создания объекта скопирован отсюда:
http://forum.php.su/topic.php?fo...29409#1290229409

Копировать сюда это не стал, дабы не загромождать кодом тему.
CODE (javascript):
скопировать код в буфер обмена
  1. var req = getXmlHttp();//предположим, что выше есть функция, описанная в ссылке, ее результат я сохраняю в переменную req, что бы получить объект.


Код отправки асинхронного AJAX запроса для получения данных:

Спойлер (Отобразить)

Содержимое файла timer.php:
PHP:
скопировать код в буфер обмена
  1. header("Content-type: " . "text/plain; charset=utf-8");
  2. header("Current-Time: ".date("H:i:s"));

output:
Цитата:

array(3) {
[0]=>
string(24) "X-Powered-By: PHP/5.3.13"
[1]=>
string(39) "Content-type: text/plain; charset=utf-8"
[2]=>
string(22) "Current-Time: 19:15:53"
}


CODE (html):
скопировать код в буфер обмена
  1. <div id="result">Loading...</div>

Как видно, заголовок со временем успешно отправляется. Тоесть должно меняться содержимое Loading... внутри div-a на живые часики, но этого не происходит потому, что не создается объект...

Сори если загрузил, кто может помогите пожалуйста Закатив глазки
2. esterio - 23 Июля, 2013 - 18:31:16 - перейти к сообщению
Зачем раз в секунду дергать скрипт ради часиков. Есть же Date - обьект для работы с датой в JS.
3. teddy - 23 Июля, 2013 - 18:32:45 - перейти к сообщению
esterio
Тут дело не в том что бы получить часики и использовать это как-то )) Пример чисто для практики использования AJAX, не более... ) Но как то не хочет работать... Сейчас моя задача состоит в том что бы понять, почему оно не работает...
4. esterio - 23 Июля, 2013 - 18:35:59 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. console.log(time);
5. teddy - 23 Июля, 2013 - 18:39:55 - перейти к сообщению
esterio пишет:
console.log(time);

Это мне ничего не даст, я же ведь написал, что у меня проблема с тем, что не создается объект... А если объект не создан, соответственно о
CODE (javascript):
скопировать код в буфер обмена
  1. console.log(time);
не может быть и речи Растерялся
6. EuGen - 23 Июля, 2013 - 18:40:17 - перейти к сообщению
teddy
req внутри функции объявлен? Или в глобальной области? Иных коллизий нет?
7. teddy - 23 Июля, 2013 - 18:47:07 - перейти к сообщению
EuGen
В глобальной области... именно в той последовательности, которую я описал...

Подробнее:
//здесь код(функция), который указан в ссылке(пример от Ammy)
функция называется getXmlHttp();
var req = getXmlHttp();//находится в глобальной видимости сразу после завершения описания функции getXmlHttp(); в переменную req записывается результат, который возвращает функция getXmlHttp();

И дальше тот код, который я описал
8. soffrick - 23 Июля, 2013 - 18:48:24 - перейти к сообщению
error detected
Цитата:
readyStatus
->
readyState

(Добавление)
and
Цитата:
getResponseHeaders
->
getResponseHeader


(Добавление)
Спойлер (Отобразить)
9. teddy - 23 Июля, 2013 - 18:53:50 - перейти к сообщению
soffrick пишет:
error detected

Есть там косяк, но тут дело в другом... В любом случае выполнение этого кода не приведет ни к чему, хотя бы потому, что объект не создается...
10. soffrick - 23 Июля, 2013 - 18:55:57 - перейти к сообщению
teddy пишет:
soffrick пишет:
error detected

Есть там косяк, но тут дело в другом... В любом случае выполнение этого кода не приведет ни к чему, хотя бы потому, что объект не создается...


почему у меня опять работает а у тебя нет?О_о
(Добавление)
Спойлер (Отобразить)

вот так даже
11. teddy - 23 Июля, 2013 - 19:04:23 - перейти к сообщению
soffrick
Спасибо! Теперь работает. Видимо я не очень хорошо себе представлял данный механизм. Поясни если не сложно. Я сравнил твой и мой вариант, вроде одно и тоже, за исключением исправления вышеуказанных тобою ошибок. Это как так получается, что при первом варианте мне js выдает ошибку в той строке, где я переменной req присваиваю объект? А после исправления ошибок она исчезает. Скрипт же на кашей читается, а сверху вниз, не?

И почему оно не работает в IE9? Аякс запросы насколько я знаю поддерживается в IE с 4 версии. Т.е выводится таймер но не тикает, а вот в хроме все норм
12. soffrick - 23 Июля, 2013 - 19:06:16 - перейти к сообщению
teddy пишет:
одно и тоже, за исключением исправления вышеуказанных тобою ошибок

так и есть, но не помешает еще
CODE (javascript):
скопировать код в буфер обмена
  1. if(xmlhttp.status == 200)

(Добавление)
teddy пишет:
Это как так получается, что при первом варианте мне js выдает ошибку в той строке, где я переменной req присваиваю объект

ну поменяй местами Подмигивание
13. teddy - 23 Июля, 2013 - 19:07:49 - перейти к сообщению
soffrick пишет:
так и есть, но не помешает еще

А есть этому какое то объяснение? Логичное, желательно =)
14. soffrick - 23 Июля, 2013 - 19:09:26 - перейти к сообщению
teddy пишет:
И почему оно не работает в IE9? Аякс запросы насколько я знаю поддерживается в IE с 4 версии. Т.е выводится таймер но не тикает, а вот в хроме все норм


http://forum.php.su/topic.php?fo...84751#1374384751
(Добавление)
teddy пишет:
А есть этому какое то объяснение? Логичное, желательно =)

Спойлер (Отобразить)
15. teddy - 23 Июля, 2013 - 19:15:10 - перейти к сообщению
soffrick
Благодарю. Можешь, когда хочешь ; )

Я почему то думал как в пыхе, тоесть

$mysqli = new mysqli("бла бла")//объект не создался из за кривых параметров;
$mysqli->query//уже не сработает так как объект не создался и искать ошибку где то после этого кода нет смысла

Так же думал про этот объект. Т.е если ошибка в строке где создается объект, то смотреть дальше уже нет смысла. Оказалось не совсем так

Всем спасибо за внимание и помощь Подмигивание Рад что вы у меня есть! )

 

Powered by ExBB FM 1.0 RC1