Пытаюсь выбрать параметры для js с помощью $.getJSON. Обращаюсь к файлу. Если в нем прописать такое:
<?php$a = "10";
$b = "20";
$arr = array('sCaption' => $a, 'sRule' => $b);
echo json_encode($arr);?>
, то на выходе получаю 2 параметра, но мне их надо брать запросом из БД. При попытке использовать db_query в этом файле ничего не происходит (подозреваю, что функция не из той области видимости). Сам файл располагается в корне сайта.
Как мне вытащить данные из БД?
Или есть иной способ?...
Комментарии
Чаще используют
jQuery.ajax({
url: url,
type: method,
dataType: type,
data: data,
success: callback
});
...
Проблема не решена. Всё так же получаю
""
↵Fatal error: Call to undefined function db_query() in UserInfo.php on line 13
""
Чтобы обращаться к функциям API друпала, надо не располагать какой-то файл в корне сайта, а писать модуль
Спасибо за наводку.. А вот модули я уже научился делать.. допустим, я выберу данные в модуле.. пусть массив из базы данных возвращает какая-либо функция getData какого-там объекта my_module_object. Как мне обратиться к этой функции из javascript?..
Проблема всё так же.. мне просто надо считать данные из БД, чтобы юзать их в скрипте...
Подскажи, пожалуйста, как это делается... Как с помощью модуля вытянуть данные из бд в java script
В семёрке было так: https://habrahabr.ru/post/164443/
Как в 8 - хз.
Есть несколько способов
1. Через свой модуль
Написать свой модуль, определить в нём hook_menu - путь по которому будут выдаваться данные, в page callback - указать свою функцию, которая будет дёргать данные из базы. Минус - на каждый запрос будет происходить полный бутстрап друпала, что может привести к неудовлетворительной производительности.
2. Через частичный бутстрап
Колдануть файл, наподобие вашего, но с подключением друпала и бутстрапа его до DRUPAL_BOOTSTRAP_DATABASE
Пример можно посмотреть в модуле ядра statistics (modules/statistics/statistics.php). Минусы - ну, наверное есть. Для того чтобы сделать тупой селект и отдать его результаты через json - наверное нет.
3. Используя модуль js. Объединяет предыдущие 2 пункта. Придётся писать свой модуль, зато файл из пункта 2 будет уже готов. Плюсы - поудобнее апи, если надо делать много разных колбэков. Минусы - апи немного нелогичное, поддерживает только POST-запросы, для одного запроса - overkill.
4. Использовать различные REST-модули. Но это совсем overkill.
Про это можно поподробнее? Оверкилл - это хорошо или плохо?
Оверкилл - слишком мощный инструмент для простой задачи.
Если нужно аяксом выхватывать результаты буквально одного запроса, даже без авторизации - то городить целое АПИ под это с кучей контриб-модулей и самописа - это перебор.
В восьмёрке рест в ядре. Поставить из контрибных Rest UI и мышкой можно накликать абсолютно всё. Если в коробке нет подходящих сервисов - лепишь вьюху с рест-экспортом. Делов на 5 минут
Дык я за семёрку говорю. И не сомневаюсь, что если данные надо дёргать из какой-то своей таблицы, или даже из другой БД - пятью минутами мышкой не обойдёшься.
Странно, обычно люди читают заголовок, но не читают текст. А у вас наоборот))))
Лол. Только сейчас заметил. Простыню зато накатал.
https://www.drupal.org/node/1665684