jQuery AJAX POST для таблицы mysql для динамических табличных данных. Я делаю это как угодно?

У меня есть таблица, которую я могу динамически добавлять и удалять любое количество строк. Как только данные будут введены пользователем, я использую функцию jQuery AJAX для отправки POST в базу данных mysql, поэтому нет перенаправления или обновления страницы.

Единственный способ, которым я мог подумать о том, чтобы заставить его работать, – использовать этот цикл for в моем jQuery, эффективно размещая каждую строку в базе данных отдельно. Как это глупо? Должен ли я получать все данные таблицы и размещать ее один раз? Там может быть любое количество строк, изменяющихся на пользователя, и пользователь может добавлять и удалять строки столько, сколько он хочет перед отправкой.

Странный подсчет переменной i происходит из-за того, что в верхней части таблицы находятся две строки. Я не мог выработать разумный способ сделать это.

Я был немного параноик относительно данных, всегда связанных с правильной строкой.

Спасибо за ваше время.

jQuery(function() { jQuery(".button1").click(function() { // process form here var rowCount = jQuery('#dataTable tr').length; for (var i = 2; i < rowCount; i++){ // the four elements of each row I am storing to the mysql var txtRow1 = jQuery('#txtRow' + (i-1)).val(); var tickerRow1 = jQuery('#tickerRow' + (i-1)).val(); var quantRow1 = jQuery('#quantRow' + (i-1)).val(); var valueRow1 = jQuery('#valueRow' + (i-1)).val(); var dataString = 'txtRow1='+ txtRow1 + '&tickerRow1=' + tickerRow1 + '&quantRow1=' + quantRow1 + '&valueRow1=' + valueRow1; //alert (dataString);return false; jQuery.ajax({ type: "POST", url: "http://rccl.co.uk/form_action1.php", data: dataString }); }; return false; }); }); 

Solutions Collecting From Web of "jQuery AJAX POST для таблицы mysql для динамических табличных данных. Я делаю это как угодно?"

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

 datastring = ''; for(var i=2; i<rowCount; i++) { var txtRow1 = jQuery('#txtRow' + (i-1)).val(); var tickerRow1 = jQuery('#tickerRow' + (i-1)).val(); var quantRow1 = jQuery('#quantRow' + (i-1)).val(); var valueRow1 = jQuery('#valueRow' + (i-1)).val(); dataString = datastring + 'index[]=' + (i-1) + 'txtRow1[]='+ txtRow1 + '&tickerRow1[]=' + tickerRow1 + '&quantRow1[]=' + quantRow1 + '&valueRow1[]=' + valueRow1; } 

Затем сделайте вызов ajax всей цепочкой.

На стороне сервера вы должны получить массивы для каждого из них, первый из которых соответствует первой строке, второй из которых соответствует второй строке и т. Д.

Прошло много времени с тех пор, как я использовал PHP, но я считаю, что символы [] для каждого ключевого элемента необходимы, чтобы определить PHP $_POST что он должен преобразовать содержимое различных ключей в массивы.

Я попробую отправить все сразу.

Причины

  1. меньше звонков, меньше шансов на утери вашего сообщения в пути (ваш сервер отклоняет запросы из-за наводнения)
  2. вам не нужно беспокоиться о том, что запросы не отвечают на запросы (возможно, это не проблема, но наличие проблемы с беспорядочными ответами потенциально может быть проблемой)
  3. он будет быстрее для сохранения большого количества строк сразу