Добрый вечер, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались. | |
| Похожие темы |
|
divan | Добрый вечер, столкнулся с такой проблемой, есть самописный модуль, теперь появилась необходимость динамического обновления контента (обновление данных в блоке по таймеру), соответственно пишу script на ajax, в параметрах указываю url к php, который "лезет" в базу и возвращает контент, но столкнулся с такой проблемой, что скрипт не работает, т.к. не видит данный файл. Для чистоты эксперимента сделал php примитивно - просто вывод текущего времени (<?php echo date("H:i:s"); ?>) и теперь получается, что если файл php кладу в корень сайта (рядом с index.php), а в скрипте указываю:$.ajax({url: "time.php", cache: false, success: function(html){$("#content").html(html);}}); то все отлично работает, но если положить файл time.php в шаблон модуля и указать путь до модуля url: "{$tpl}/guest/time.php", то ajax не отправляет запросы (слэши пробовал как одинарные, так и двойные). В консоли ошибок ни каких ошибок не фиксируется (использую ff), ошибок smarty так же нет. Переменная {$tpl} точно содержит верный путь, т.к. неоднократно используется при подключении других файлов. Пожалуйста, подскажите, в чем моя ошибка и как мне указать url до модуля так, чтобы php был виден и выполнялся??? P.S.: не знаю, интересно кому или нет, но в статьях обнаружил, что если в статье заполнить оценки, то в дальнейшем все эти оценки, при просмотре статьи, отображаются под панелями авторизации, новыми пользователями и т.д. Мне это не актуально, поэтому не исправлял. Отредактировано divan: 02.03.2012, 19:47:21 |
SX | Цитата Переменная {$tpl} точно содержит верный путь, т.к. неоднократно используется при подключении других файлов Если вы правильно отписали, именно подключение, то для подключения используется включая папки сервера, а вот для вызова файла нужет путь именно от корневой директории сайта Цитата P.S.: не знаю, интересно кому или нет, но в статьях обнаружил, что если в статье заполнить оценки, то в дальнейшем все эти оценки, при просмотре статьи, отображаются под панелями авторизации, новыми пользователями и т.д. Мне это не актуально, поэтому не исправлял. У вас в контенте нарушена парность тегов, частая проблема при копипасте |
divan | Цитата Автор: Status-X Если вы правильно отписали, именно подключение, то для подключения используется включая папки сервера, а вот для вызова файла нужет путь именно от корневой директории сайта Спасибо, пробовал и так, и так (даже права на файлы проверял), но стыдно признаться, ошибка была сильно банальна, при объявлении пути до модуля сделал опечатку в слове modules и двое суток не видел этого Цитата Автор: Status-X У вас в контенте нарушена парность тегов, частая проблема при копипасте Буду знать и проверю теги на парность. На самом деле, переключился на "источник" и сразу увидел проблему копипаста не через блокнот Отредактировано divan: 03.03.2012, 22:43:20 |
divan | Решил не плодить темы, поэтому хочу задать ещё один вопрос, который не могу уже долго решить. По прежнему продолжаю "биться" над динамическим обновлением страницы и в общем-то вопрос в следующем: есть такой код:
В классе chat.php стандартное:
При такой реализации я получаю "Доступ запрещен". Также пробовал сделать вызов через url: "index.php", data: "p=chat&action=refresh",но при такой попытке switch переключался на start,а не на refresh Ради эксперимента, делал отдельный класс, в котором было прописано подключение к базе и обработка запроса, получения из базы данных и вызов был в виде url: "{$path}/badChat.php", все работает, но ни как не соответствует контексту безопасности. В общем-то вопрос, как правильно реализовать данный ajax запрос, чтобы в chat.php не ловить "Доступ запрещен" и корректно по запросу POST переходить к получению сообщений? Или может быть есть какие-то другие способы перегрузить div? Сумбурно как-то получилось описать, поэтому в двух словах: делаю модуль чата, есть div, в который выводятся сообщения и в принципе уже почти все работает, за исключением динамического обновления по таймеру. Перезагружать всю страницу, это как-то не правильно :) | ||
SX | Цитата Также пробовал сделать вызов через url: "index.php", data: "p=chat&action=refresh",но при такой попытке switch переключался на start,а не на refresh Ну так отловите почему не приходит action, а так это правильный вариант, с отдельным файлом гемороя будет гораздо больше Цитата include (MODUL_DIR . '/chat/class/class.Chat.php'); Это не нужно, классы автоматом грузятся из папки классов. А самый правильный вариант, реализовывать все через модуль, там все просто посмотрите на примере модуля test или donate |
divan | Цитата Автор: Status-X А самый правильный вариант, реализовывать все через модуль, там все просто посмотрите на примере модуля test или donate Именно как модуль все это и делаю Спасибо за наводку, буду пытаться найти, за счет чего action теряется... С отдельным файлом я попробовал, ради чистоты эксперимента Отредактировано divan: 18.03.2012, 19:17:13 |
divan | Всем, доброй ночи. Разобрался где и почему теряется action. Все исправил, но столкнулся со следующей "проблемой", если посмотреть в мое сообщение выше, то в классе chat.php в методе refresh запрашиваются из базы новые сообщения, там же формируется json массив для возврата клиенту, но не все так просто оказалось. Дело в том, что помимо формируемого массива, к данным, в самый конец, добавляется html код стартовой страницы. Для себя решил эту "проблему" так: в index.php добавил дополнительное условие вида (знаю, что условия требуют объединения в одно через && )
тогда HTML код не добавляется к данным и JSON формируется корректный. Но, т.к. я все это делаю в виде отдельного модуля, то считаю данный способ не совсем корректным. Можно-ли как-то (может при указании в параметрах, хотя не нашел таких условий) сделать так, чтобы HTML код не добавлялся к данным JSON'а не внося какие-либо изменения в index.php и прочие классы не относящиеся к модулю??? | |
SX | В функциях которые формируют только вывод аяксом нужно объявить константу AJAX_OUTPUT
| |
divan | Ещё раз, спасибо, как всегда, не заметил подсказку, которая тут-же, по сути лежала буквально же парой строчек выше четко написано
| |
|
Похожие темы | Предыдущая тема | Следующая тема |
Быстрый переход: |
Темы | Сообщения | Пользователи | |
За сутки: | 0 | 0 | 0 |
За неделю: | 0 | 0 | 0 |
За месяц: | 0 | 0 | 1 |
Всего: | 1444 | 9453 | 3410 |
Мы приветствуем нового участника: dota812651 |