Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 10

Классы: не подгружается ajax

09.09.2017, 17:36. Показов 2625. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
use modules\datebase\connection;
 
$CONNECT = new Connection();
...
Есть страница откуда посылаются данные (ajax) на php файл где подключается класс БД, его там не находит. Если же не через ajax все работает. Почему?
HTML5
1
Fatal error: Uncaught Error: Class 'modules\datebase\connection' not found in
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2017, 17:36
Ответы с готовыми решениями:

Ajax и классы PHP
Ребят, привет! Возник такой вопрос, как подружить Ajax и классы PHP. А вернее, как направить Ajax сразу с нужный класс и в нужную...

Фильтр Ajax
Почему фильтр пожащим работает воинским частям может не работать? Фильтр по военнослужащим работает. CREATE TABLE tests ( id...

AJAX + MySQL
Не знаю как сделать на ajax'e чтобы он задавал в базу запрос $query = mysql_query("UPDATE `quotes` SET `rating` = '$r' WHERE `id` =...

11
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
09.09.2017, 19:28
Ничего не понял.
vavav1, это ты?
0
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 10
09.09.2017, 19:56  [ТС]
Зверушь, класс БД рабочий, но если к файлу пхп где подключается этот класс обратится через аякс - форма посылки и приема результата, выдает ошибку которую я указал выше.

Добавлено через 1 минуту
Зверушь, класс БД рабочий, но если к файлу пхп где подключается этот класс обратится через аякс - форма посылки и приема результата, выдает ошибку которую я указал выше.
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
10.09.2017, 10:22
romaaa32, покажите как подключается файл с нужным классом. мало информации.
А лучше покажите все содержимое файла, к которому обращаются через ajax и укажите полный текст ошибки, вместе с номером строки в которой она возникает.
0
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 10
10.09.2017, 11:13  [ТС]
PHP
1
Fatal error: Uncaught Error: Class 'modules\datebase\connection' not found in C:\OpenServer\domains\localhost\content\page\brotherhood\fraternalspirit.php:5 Stack trace: #0 {main} thrown in C:\OpenServer\domains\localhost\content\page\brotherhood\fraternalspirit.php on line 5
Сам код
PHP
1
2
3
4
5
<?php
 
//include $_SERVER['DOCUMENT_ROOT'].'/autoload.php';
use modules\datebase\connection;
$CONNECT = new Connection;
Добавлено через 2 минуты
Нашел в чем ошибка, автозагрузка класса не работает когда обращение идет через аякс, хоть весь сайт построен на одной точке входа. Если же подключить прямо в нужном файле автозагрузку начинает работать. Почему так происходит еще не разобрался.
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
10.09.2017, 11:42
Цитата Сообщение от romaaa32 Посмотреть сообщение
автозагрузка класса не работает когда обращение идет через аякс, хоть весь сайт построен на одной точке входа
Так может быть сам ajax шлется не на единую точку входа, где запрос перенаправляется на нужный метод, а на сам файл где этот метод существует? Естественно, раз подключения класса в нем нет, то и вываливается ошибка.
Покажите как шлете ajax. Весь код отправки запроса. Скорее всего ошибка в адресе запроса.
0
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 10
10.09.2017, 12:43  [ТС]
HTML5
1
<form action="/content/page/fraternalspirit.php" method="post" id="fraternalspirit">
Вот в форме напрямую в пхп файл.

Сам аякс:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$(document).ready(function() {
    
    $('form').submit(function(event) {
        
        event.preventDefault();
        
        var id = $(this).attr('id');
        
        $.ajax(
            {
                type: $(this).attr('method'),
                url: $(this).attr('action'),
                data: new FormData(this),
                contentType: false,
                cache: false,
                processData: false,
                success: function(data)
                    {
                        
                      $('#data-'+id).html(data);
                    }
            });
    });
});

Понял в чем проблема, теперь пытаюсь ее решить)
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
10.09.2017, 12:49
Цитата Сообщение от romaaa32 Посмотреть сообщение
Понял в чем проблема, теперь пытаюсь ее решить)
Ок
Цитата Сообщение от romaaa32 Посмотреть сообщение
PHP
1
<form action="/content/page/fraternalspirit.php" method="post" id="fraternalspirit">
Похоже на то, что я сказал выше.
0
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 10
10.09.2017, 13:07  [ТС]
Да)
Вот новая проблема, если передавать запрос через роутер - выдает нужный результат но еще со всей страницей (шапкой и подвалом) а не только сам результат.
Не подскажите как тут нужно действовать?
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
10.09.2017, 17:48
Лучший ответ Сообщение было отмечено romaaa32 как решение

Решение

Для ajax должен быть определен отдельный метод, ведь вам не нужно получать всю страницк целиком. Создайте новый метод в контроллере, пропишите маршрут в роутере и шлите на него ajax запрос.
Код метода примерно такой должен быть:
PHP
1
2
3
4
5
6
7
8
9
public function ajax_method() {
    $data = array(); // Возвращаемые данные.
    /** 
    * Ваш код метода. Все итоговые данные помещаются в массив $data
    */
    
    header('Content-Type: application/json'); //Говорим браузеру, что возвращаемые данные представлены в формате json
    echo json_encode($data); //Отправляем данные.
}
Далее на клинете:
JavaScript
1
2
3
4
5
6
7
$.ajax({
    // ...
    success: function(response) {
          console.log(response); // И видим все, что вы поместили в массив data на сервере.
        }
    });
});
0
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 10
10.09.2017, 21:50  [ТС]
Спасибо, буду пробовать.
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
11.09.2017, 09:30
Лучший ответ Сообщение было отмечено romaaa32 как решение

Решение

Для ajax всегда должны быть созданы отдельные маршруты, так как обычно вам нужно получить некий набор данных, который может или не может включать html. И даже если надо получить html, то это не вся страница а только какой-то кусок, например обновленный блок или таблица. И в месте с этим обычно нужны доп данные. Поэтому и формируется массив с данными, в элементы которого вы и вкладываете нужные значения. Так как это массив, а отправка данных сервером, это по сути текст, поэтому массив и кодируется при помощи json_encode в строку. Отправляя заголовок header('Content-Type: application/json'); эта строка будет обратно распакована автоматически сразу на клиенте. Если не передать заголовок, то в методе success придется делать это вручную. Это не сложно, всего лишь $.parseJSON(), но как по мне, то лучше посылать заголовок
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2017, 09:30
Помогаю со студенческими работами здесь

Класс для роботы с ICQ
Двйте класс для роботы с ICQ,но чоби с максимальними возможностями)ну тоисть максимум функций)

Класс в php
Помогите пожалуйста, имеется класс в php connect.php //------------------------------------- &lt;?php class db { var...

Ajax
Дорогие друзья, подскажите пожалуйста - как в javascript использовать переменные из php ?

Имеет ли доступ класс к массивам $_POST и подобным?
Можно ли непосредственно в методе класса обратиться к суперглобальным массивам?

Ajax и кодировки
Проблема в кодировках при работе через Аякс. Итак, есть две ситуации. Первая. Локальный сервер. При передачи из аякс скрипта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru