#ajax #google-sheets #tabulator
#ajax #google-sheets #табулятор
Вопрос:
Я пытаюсь уже несколько дней и не могу понять, как загрузить документ Google Sheets в Tabulator.
Что я сделал:
- Получение данных в формате JSON из документа Google Sheets
- Добавлена библиотека табуляторов на этой странице
- Но все еще получаю эти ошибки:
- Ошибка загрузки Ajax — Ошибка подключения: 0
- Ошибка загрузки Ajax: ответ {тип: «непрозрачный», URL: «», перенаправлено: false, статус: 0, ok: false, …}
- И как я могу получить поля ‘entry’> ‘gsx $ naam’ — ‘Joan van den Akker — KAV Holland’ в столбец (ключ ‘gsx $ naam’ имеет объект ‘{«$ t»: «Joan van den Akker — KAV Holland»}’ в качестве значения, но мне нужно только имя …)
Мой код табулятора:
var table = new Tabulator("#baanrecords", {
ajaxConfig:{
mode: 'no-cors',
method:'GET',
credentials: 'same-origin',
headers: {
'Content-type': 'application/json; charset=UTF-8',
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest'
},
},
ajaxURL: 'https://spreadsheets.google.com/feeds/list/1Ze31_SUFd0ZyqeG1mt1qrEU61onnYhmI9mR1BC1pM7Y/od6/public/values?alt=json',
height:'400px',
layout:'fitColumns',
autoColumns:true,
placeholder:'De records worden geladen, een moment...',
index: 'onderdeelnaam',
columns:[
{title:"Onderdeel", field:"gsx$onderdeelnaam", sorter:"string", width:200},
{title:"Prestatie", field:"gsx$prestatie", sorter:"number", formatter:"progress"},
{title:"Eenheid", field:"gsx$prestatieeenheid", sorter:"string"},
{title:"Naam", field:"gsx$naam", sorter:"string", align:"left", width:100},
{title:"Categorie", field:"gsx$categorie", sorter:"string", sortable:true},
{title:"Datum", field:"gsx$datum", sorter:"date", align:"left"},
{title:"Plaats", field:"gsx$plaats", align:"right", sorter:"string"},
],
ajaxResponse:function(url, params, response){
//url - the URL of the request
//params - the parameters passed with the request
//response - the JSON object returned in the body of the response.
return response.entry; //return the tableData property of a response json object
},
});
table.setData("https://spreadsheets.google.com/feeds/list/1Ze31_SUFd0ZyqeG1mt1qrEU61onnYhmI9mR1BC1pM7Y/od6/public/values?alt=json");
К сожалению, я не могу понять, что я делаю не так.
Заранее спасибо за любую помощь.
Комментарии:
1. Я тоже получаю эти же ошибки. Вы нашли решение? Я не видел, чтобы приведенный ниже ответ был принят, поэтому не уверен, использовали ли вы это, и это сработало?
Ответ №1:
bldgChange: function () {
console.log(this.selected)
this.tabulator.parameter = this.selected
fetch('<API-URL>?Building=' this.selected)
.then(response => response.json())
.then(json => this.tabulator.setData(json.recordset))
},
Я отказался от ajaxURL, поскольку у слишком многих людей возникали проблемы с ним и не было реальных решений. Это метод, который я создал для того, что мне было нужно. Возможно, вы сможете модифицировать его в соответствии с вашими потребностями.