Как я отправляю большие данные через вызов Ajax (jQuery)?

Вы хотите что-то в этом роде?

Конечно, я не включил ваш исходный код в свой ответ, но достаточно просто скопировать и вставить. В моем примере я использую подход с использованием функциональных стилей, то есть использую curry , литералов шаблона и не говоря уже о функции map .

Я думаю, что все, что вам действительно нужно сделать в этом сценарии, - это передать таблицу и данные из функции AJAX success в предоставленную мной функцию рендеринга, я просто предполагаю, что данные, возвращаемые с сервера, представляют собой массив объектов.

// The HTML table.
const tbl = document.querySelector('.append_data');

// Some example data.
const dummyData = [
  {name: 'demo', mobile: '01748329', city: 'NY', edit: 'Something'},
  {name: 'test', mobile: '12345789', city: 'WA', edit: 'Something Else'}
];

// A function to produce a HTML table row as a string.
const template = d => `
    ${d.name}
    ${d.mobile}
    ${d.city}
    ${d.edit}
  `;

// A function that takes a table, returns a function to accept an arrya of objects.
// It will then add the relevant template(s) to the provided table. 
const render = tbl => d => tbl.innerHTML += d.map(i => template(i)).join('');

// Fire the render function. 
render(tbl)(dummyData);
Name mobile city edit

Редактировать

Я также использовал функции стрелок [ 1113] в моем первом примере приведена более дружественная для начинающих реализация.

// The HTML table.
var tbl = document.querySelector('.append_data');

// Some example data.
var dummyData = [
  { name: 'demo', mobile: '01748329', city: 'NY', edit: 'Something' }, 
  { name: 'test', mobile: '12345789', city: 'WA', edit: 'Something Else' }
];

// A function to produce a HTML table row as a string.
var template = function template(d) {
  return '' 
  + '' 
  + d.name 
  + '' 
  + '' 
  + d.mobile 
  + '' 
  + '' 
  + d.city 
  + '' 
  + '' 
  + d.edit 
  + '' 
  + '';
};

// A function that takes a table, returns a function to accept an arrya of objects.
// It will then add the relevant template(s) to the provided table. 
var render = function render(tbl) {
  return function (d) {
    return tbl.innerHTML += d.map(function (i) {
      return template(i);
    }).join('');
  };
};

// Fire the render function. 
render(tbl)(dummyData);
Name mobile city edit

Редактировать 2

Если я не ошибаюсь, вам необходимо удалить [ 115] для правильной работы с предоставленным мною кодом. В коде, который я предоставил, вы можете видеть, что мой код ожидает, что будет предоставлено object, и если вы используете JSON.stringify, то этот по существу преобразует объект в строку .. В этом случае этот код не будет работать ... Может быть, вам стоит немного больше прочесть о том, как использовать такие методы, как JSON.stringify & amp; JSON.parse .

5
задан Darren Oster 15 January 2009 в 02:28
поделиться

2 ответа

используйте $ .post

например,

$.post(someUrl, { textData: $('#someInput').val() } );

$ .post является просто простой оберткой вокруг $ .ajax.

$.ajax({ type :"post", 
         data : { textData: $('#someInput').val() },
         url : someUrl
      });
8
ответ дан 18 December 2019 в 13:20
поделиться

Да; согласно документации jQuery, можно использовать jQuery.post к данным POST.

Если Вы хотите отправить существующую форму, используйте:

var form = $("#myform"); // or whatever
$.post(form.get()[0].action, form.serialize(), function(data) {
    // data received
}, "xml");
6
ответ дан 18 December 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: