价值不传递

本文关键字: | 更新日期: 2023-09-27 18:01:31

我正在尝试将选定的复选框值发送到另一个asp页面以更新数据库。

$("#Delete_selected_Comment_button").click(function () {
    var dataToBeDeleted = new Array();
    $('.checkboxes_to_delete:checked').each(function (key, value) {
        dataToBeDeleted .push($(this).val());
    });
    $.ajax({
        url: 'http://myurl.aspx',
        type: 'GET',
        data: dataToBeDeleted,
        success: function () { alert('yipee'); },
        error: function () { alert("Ooff could not delete data"); }
    });
});

问题:

我无法检索myurl.asp页面中的任何值。
我正在做:

String datagotfromajax= request.QueryString[dataToBeDeleted];

我做错了吗?我错在哪里?有人能帮忙吗?

价值不传递

一个简单的方法是改变一行:

data: "ids="+dataToBeDeleted.join(","),

并且,在服务器端做:

string[] ids = Request.QueryString["ids"].ToString().Split(",");

这样,您将在服务器中拥有一个字符串数组,其中包含相应的复选框值。

dataToBeDeleted在发送到服务器时将被转换为查询字符串(如果还没有),这意味着它由键值对组成,即foo=bar&fred=fish。在服务器上,您可以使用语法

查询单个键值对
string bar = request.QueryString["foo"];

您正在传递一个数组作为data参数。这行不通。你需要传递一个对象。如果对象包含一个数组,它将被适当地序列化。这意味着你的代码应该看起来像这样:

data: {
    toBeDeleted: dataToBeDeleted
},

这将被适当地序列化(参见$.param的序列化过程),您可以使用后端代码检索这些值。

相关文章:
  • 没有找到相关文章