我正在尝试将选定的复选框值发送到另一个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];
我做错了吗?我的错误在哪里?有人可以帮忙吗?
答案 0 :(得分:0)
dataToBeDeleted
在发送到服务器时将被转换为查询字符串(如果尚未转换),这意味着它包含键值对,即foo=bar&fred=fish
。在服务器上,您可以使用语法
string bar = request.QueryString["foo"];
答案 1 :(得分:0)
您正在将数组作为data
参数传递。这不行。你需要传递一个对象。如果对象包含数组,则将对其进行适当的序列化。这意味着您的代码应该如下所示:
data: {
toBeDeleted: dataToBeDeleted
},
然后将对其进行适当的序列化(有关序列化过程,请参阅$.param
),您可以使用后端代码检索值。
答案 2 :(得分:0)
一种简单的方法是改变一行:
data: "ids="+dataToBeDeleted.join(","),
并且,在服务器中执行:
string[] ids = Request.QueryString["ids"].ToString().Split(",");
有了这个,你就会在服务器中找到一个带有相应复选框值的字符串数组。
HOpe这有帮助。