0

我正在使用 tableDnD 拖放表中的行,在删除行之后,我想要一个更新的数据列表来告诉我行的新顺序。我希望通过 AJAX 将此数据发送回操作。

这是我的函数和 ajax 调用

        $(document).ready(function() {
        $('#profileTable').tableDnD({
            onDrop: function(table, row) {
                var rows1 = table.tBodies[0].rows;
                $.ajax('@(Url.Action("SaveTopTenGames"))',
                    {
                        type: 'POST',
                        cache:false,
                        data: {json:$.tableDnD.serialize()},
                        success:function(st){

                        },
                        error: function (jqXHR, textStatus, errorThrown) {
                            console.log(textStatus, errorThrown);
                        }
                    });

            }
        });
    });

这是目前我在操作中收到的字符串数据

"profileTable%5B%5D=1&profileTable%5B%5D=2&profileTable%5B%5D=4&profileTable%5B%5D=5&profileTable%5B%5D=3&profileTable%5B%5D=6&profileTable%5B%5D=7&profileTable%5B%5D=8&profileTable%5B%5D=9&profileTable%5B%5D=10"

现在我不知道如何将该字符串转换为我可以使用的任何内容。关于我应该做什么的任何建议?

4

2 回答 2

0

如果要替换 json 字符串并将其拆分为 Array,请尝试以下操作:

string json = "profileTable%5B%5D=1&profileTable%5B%5D=2&profileTable%5B%5D=4&profileTable%5B%5D=5&profileTable%5B%5D=3&profileTable%5B%5D=6&profileTable%5B%5D=7&profileTable%5B%5D=8&profileTable%5B%5D=9&profileTable%5B%5D=10";
var str = json.Replace("%5B", "[").Replace("%5D", "]");
var strArray = str.Split('&');

for (int i = 0; i < strArray.Count(); i++)
{
    //get the required value from strArray
    //Console.WriteLine(strArray[i]);
}
于 2014-01-25T05:58:23.423 回答
0

尝试这个 ;-)

function queryParams(string, separator) {
  var match = $.trim(string || '').match(/([^?#]*)(#.*)?$/);
  if (!match) return {};
  var array = match[1].split(separator || '&'), hash = {}, pair;
  for (var i = 0, len = array.length; i < len; ++i) {
    pair = array[i];
    if ((pair = pair.split('='))[0]) {
      var key = decodeURIComponent(pair.shift()),
          value = pair.length > 1 ? pair.join('=') : pair[0];
      if (value != undefined) value = decodeURIComponent(value);
      if (key in hash) {
        if (!$.isArray(hash[key])) hash[key] = [hash[key]];
        hash[key].push(value);
      }
      else hash[key] = value;
    }
  }
  return hash;
}

// Will return a hash: { 'profileTable[]': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] }
queryParams('profileTable%5B%5D=1&profileTable%5B%5D=2&profileTable%5B%5D=4&profileTable%5B%5D=5&profileTable%5B%5D=3&profileTable%5B%5D=6&profileTable%5B%5D=7&profileTable%5B%5D=8&profileTable%5B%5D=9&profileTable%5B%5D=10');
于 2014-01-25T05:20:36.377 回答