Я пытаюсь загрузить данные json из контроллера web2py в jQuery dataTable через AJAX.
Но отображается только пустая dataTable (с желаемым форматированием, поле поиска и т. Д.)
Может кто-нибудь pl. укажите в мой код, где я ошибаюсь.
Данные не отображаются (как возвращается методом get_data).
Я убедился, что таблицы базы данных заполнены.
КонтроллерДанные JSON для jQuery dataTable в web2py
def show_data():
return dict()
def get_data():
custdata = db.executesql(qry, as_dict=True)
return custdata
Для целей тестирования, я вернулся response.json (custdata) в отдельный метод & одобренного же на "jsonlint.com". Это действительно json.
View (show_data.html)
{{extend 'layout.html'}}
$(document).ready(function() {
var oTable = $('.smarttable').dataTable({
"sScrollY": "200px",
"sAjaxSource": "{{=URL('MIS','get_data.json')}}",
"sDom": "frtiS",
"bDeferRender": true
});
});
Наконец, HTML теги таблиц определяются для таблицы с классом = "smarttable"
Я уже пытался вернуть dict (data = custdata) в «контроллер». Затем в «View» попытался получить доступ к этим данным: - «sAjaxSource»: «{{= URL ('MIS', 'get_data')}}", но не удался. Если response.json (custdata) используется и доступен непосредственно в браузере, он записывает json на страницу браузера. Но при доступе из «sAjaxSource» данные не отображаются. Я думаю, что что-то не так в том, как я называю метод get_data. Можете ли вы пл. помогите найти ошибку? .... Спасибо. – Vineet
Является ли MIS вашим именем приложения или именем контроллера?URL() будет считать, что это имя контроллера и генерирует URL-адрес как/appname/MIS/get_data - это то, что оно должно быть, или должно быть/MIS/controller/get_data (в этом случае вам нужно заменить " MIS 'с именем контроллера в вашем вызове URL()). – Anthony
У меня такая структура. a = 'MyWheels', c = 'MIS', f = 'get_data'. Таким образом, {{= URL ('MIS', 'get_data')}} должен работать. Но он не возвращает данные в dataTable. – Vineet