循环遍历html表数据并提交回服务器

时间:2012-02-17 01:11:58

标签: asp.net-mvc jquery

我花了最后几个小时争取写一些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 :(得分:0)

添加两个参数

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

到您的.ajax电话。

创建一个对象服务器端,它有两个int属性int,名为itemId和productId,然后创建一个JsonResult路由,它接收你发布的对象数组(在你的情况下这将是ApplyProduct)。

答案 1 :(得分:0)

你不能将数组发送到服务器,它们必须是字符串。

你可以像这样加入阵列

param.join(";");

将创建一个字符串,每个值由a分隔;

您还需要将数据选项指定为键值json

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

然后在服务器端,您可以将字符串拆分回数组

$param = explode(";",$_POST['param']);