Невозможно построить временную диаграмму из значений AJAX - PullRequest
1 голос
/ 21 марта 2019

На самом деле я пытаюсь построить временную диаграмму, используя диаграмму Google, используя данные, переданные со стороны сервера и полученные ajax.

Проблема в том, что я получаю следующую ошибку, когда пытаюсьсделайте это:

Uncaught Error: Row given with size different than 4 (the number of columns in the table).

Пока вот что я получаю из цикла $ .each

enter image description here

Поскольку я просто готовлю временную шкалу с данными из AJAX, реальные значения будут установлены позже, а сейчас я просто пытаюсь добавить пустые временные шкалы, используя следующую инструкцию , чтобы данные начинались и заканчивалисьдолжно быть таким же.

вот код ajax:

$.ajax({
    type: "POST",
    url: "prenotazioni.aspx/getTavolo",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        $.each(msg.d, function (k, v) {
            //console.log(v);
            dataTable.addRow([[v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]]);
        });

    }
});

ОБНОВЛЕНИЕ: Это то, что я пытаюсь достичь автоматически из цикла ajax

enter image description here

Проблема состоит в том, что для того, чтобы сделать ячейку пустой, даты начала и окончания должны быть одинаковыми, но не могут быть одинаковыми для всех приведенных здесь строк.как была построена следующая временная шкала

dataTable.addRows([
    ["33", '', new Date(0, 0, 0, 11, 0, 0), new Date(0, 0, 0, 11, 0, 0)],
    ["Tavolo 2", '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)],
    ["Tavolo 3", '', new Date(0, 0, 0, 13, 0, 0), new Date(0, 0, 0, 13, 0, 0)],
    ["Tavolo 4", '', new Date(0, 0, 0, 14, 0, 0), new Date(0, 0, 0, 14, 0, 0)],
    ["Tavolo 5", '', new Date(0, 0, 0, 15, 0, 0), new Date(0, 0, 0, 15, 0, 0)],
    ["Tavolo 6", '', new Date(0, 0, 0, 16, 0, 0), new Date(0, 0, 0, 16, 0, 0)],
    ["Tavolo 7", '', new Date(0, 0, 0, 19, 0, 0), new Date(0, 0, 0, 19, 0, 0)],
    ["Tavolo 8", '', new Date(0, 0, 0, 20, 0, 0), new Date(0, 0, 0, 20, 0, 0)],
    ["Tavolo 9", '', new Date(0, 0, 0, 21, 0, 0), new Date(0, 0, 0, 21, 0, 0)],
]);

Так что теперь вопрос в том, как сделать начало и конец времениТо же самое для ряда, но различное для каждого ряда.

1 Ответ

1 голос
/ 21 марта 2019

Я думаю, что проблема в том, что вы пытаетесь добавить одну строку только с элементом:

dataTable.addRow([[v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]]);

С этой строкой вы пытаетесь добавить эти данные:

[
    [v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]
]

Это всего лишь один элемент (список с одним списком внутри), когда вам нужно 4 из них, чтобы создать полную строку (в вашем случае он должен содержать 4 элемента).

Просто удалите лишниев скобках и с вами должно быть все в порядке:

dataTable.addRow([v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]);

Редактировать: Новая ошибка, о которой вы сообщаете в комментарии (Error: <text> attribute x: Expected length, "NaN"), может быть вызвана тем фактом, что вы указали 2 датыпредоставление одинаково (согласно этому ответу ).

Редактировать 2: После вашего редактирования:

Как я уже сказал в своем ответе на вашкомментарии, дата окончания строки может совпадать с датой начала следующей.Попробуйте это:

dataTable.addRows([
    ["33", '', new Date(0, 0, 0, 11, 0, 0), new Date(0, 0, 0, 12, 0, 0)],
    ["Tavolo 2", '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 13, 0, 0)],
    ["Tavolo 3", '', new Date(0, 0, 0, 13, 0, 0), new Date(0, 0, 0, 14, 0, 0)],
    ["Tavolo 4", '', new Date(0, 0, 0, 14, 0, 0), new Date(0, 0, 0, 15, 0, 0)],
    ["Tavolo 5", '', new Date(0, 0, 0, 15, 0, 0), new Date(0, 0, 0, 16, 0, 0)],
    ["Tavolo 6", '', new Date(0, 0, 0, 16, 0, 0), new Date(0, 0, 0, 17, 0, 0)],
    ["Tavolo 7", '', new Date(0, 0, 0, 19, 0, 0), new Date(0, 0, 0, 20, 0, 0)],
    ["Tavolo 8", '', new Date(0, 0, 0, 20, 0, 0), new Date(0, 0, 0, 21, 0, 0)],
    ["Tavolo 9", '', new Date(0, 0, 0, 21, 0, 0), new Date(0, 0, 0, 22, 0, 0)],
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...