Перебрать данные таблиц html и отправить обратно на сервер - PullRequest
0 голосов
/ 17 февраля 2012

Последние пару часов я потратил на борьбу за написание некоторого javascript и jquery.

В основном я пытаюсь пройтись по таблице, проверяя, существует ли атрибут в TD, если он добавляет свою информацию вмассив и отправить его обратно на сервер

Мой код (я уверен, что это может быть лучше)

      $("#save-changes").click(function () {
        var param = [];
        var table = $("#products-grid > .t-grid-content > table tbody tr").each(function (i) {
            //find checkboxes using class
            var td = ($(this).find("td:nth-child(2)").find(".cb"));
            var attr = $(td).attr('data-item');

            if (typeof attr !== 'undefined' && attr !== false) {
                console.log(td);
                param.push({ "itemId": attr, "productId": td.val() });
            }
        });
        console.log(param);

        $.ajax({
            url: '@Url.Action("ApplyProduct")',
            data:  param,
            type: 'POST',
            success: function (e) {

Я застрял при попытке передать массив обратно на сервер.Что мне нужно сделать, чтобы отправить данные обратно на сервер в качестве параметра, понятного для сервера?

Любая помощь будет великолепна!

Ответы [ 2 ]

0 голосов
/ 17 февраля 2012

вы не можете отправлять массивы на сервер, они должны быть строками.

вы можете объединить массив вместе, как это

param.join(";");

, что создаст строку с каждым значением, разделеннымa;

также вам необходимо указать параметр данных в качестве значения ключа json

$.ajax({
    url: '@Url.Action("ApplyProduct")',
    data:  {
        param : param
    },
    type: 'POST',

, затем на стороне сервера вы можете разбить строку обратно на массив

$param = explode(";",$_POST['param']);
0 голосов
/ 17 февраля 2012

добавить два параметра

dataType: "json",
data: JSON.stringify(param)

на ваш .ajax вызов.

Создайте объектную серверную часть, которая имеет два свойства int, называемых itemId и productId, и затем создайте маршрут JsonResult, который принимает массив вашего объекта, который вы также публикуете (это будет ApplyProduct в вашем случае).

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