Ich habe eine variable Anzahl von Registerkarten mit benutzerdefinierten Formularen auf denen ich versuche, die Daten aus zu buchen.jQuery Beitrag keine multidimensionalen Array-Daten senden
Meine Lösung bestand darin, ein Array mit einem anderen Array für jede Registerkarte zu machen. dann poste dieses mehrdimensionale Array an meinen Controller.
$("#savetabs").click(function()
{
$("body").addClass("loading");
var $alltabdata = [];
$("#customtabs-holder").children().each(function() {
$tablename = $(this).attr('id');
$thistabdata = [];
$inputs = $(this).find("input");
$.each($inputs, function(index, value) {
$thistabdata[$(this).attr("name")] = $(this).val();
});
$selects = $(this).find("select");
$.each($selects, function(index, value) {
$thistabdata[$(this).attr("name")] = $(this).val();
});
$alltabdata[$tablename] = $thistabdata;
});
console.log($alltabdata);
posting = PostTabData($client_id, $alltabdata);
posting.done(function(data) {
$("body").removeClass("loading");
console.log(data);
alert(data);
});
posting.fail(function() {
$("body").removeClass("loading");
alert("Failed to post tab info");
});
});
function PostTabData($client_id, $tabdata) {
console.log($tabdata);
debugger;
return $.post("/CustomTables/Contents/Save",
{
client_id: $client_id,
alltabdata: $tabdata,
});
}
die console.log vor der Post zeigt die richtigen Informationen, aber die Registerkarte Daten endet nicht in meinem Controller und wenn ich chromes Entwickler-Tools unter der Netzwerk-Option überprüfen zeigt es die gesendeten Daten als nur die aus das client_id Feld
Versuchen Sie folgendes: thistabdata $ = {}; –