PHP: use modules\datebase\connection; $CONNECT = new Connection(); ... Есть страница откуда посылаются данные (ajax) на php файл где подключается класс БД, его там не находит. Если же не через ajax все работает. Почему? Код (Text): Fatal error: Uncaught Error: Class 'modules\datebase\connection' not found in
Проверяйте, на какой адрес, с какими параметрами идет аякс. Смотрите, чем это отличается от прямого вызова.
Может быть. При роутинге у тебя цепляются все нужные файлики, включая классы необходимые. А напрямую - нет. Вывод? Шлем AJAX на роутер.
PHP: if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { $ad = substr($_SERVER['REDIRECT_URL'], 1); include $ad.'.php'; } Сделал так, но опять проблема, выводит полностью с заголовком страницу, а не только результат как должно. Пойду дальше разбираться. Спасибо)
Логично. Ты передавай какой-нибудь параметр, чтобы система поняла, что это AJAX-запрос, и отдала только то, что нужно в контексте этого запроса. У меня, к примеру, одна точка входа для всего, но если система получает AJAX, она перенаправляет запрос от основного потока в специальный аяксовый роутер, работающий уже по своим правилам.
в общем ковырялся и понял кое-то, автозагрузчик классов не подключается почему-то, а почему так и не понял вот такое если добавить в пхп файл к которому обращается аякс начинает работать: PHP: include $_SERVER['DOCUMENT_ROOT'].'/autoload.php'; Может с хтаццесом что-то не такЖ Код (Text): RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [L]
Осваивай отладку. Ставь себе нормальную IDE, ставь xDebug, дружи их между собой, это дело нехитрое и легко гуглится. И сможешь свои программы построчно просматривать в действии, что куда и как, как переменные меняются, куда какие вызовы идут. Милейшее дело.