im nicht wirklich in jQuery, aber ich brauche, es zu lernen, so kann ich einige Projekte im verwirklichen arbeiten weiter.Mehrere Objekte in einem Array
Ich benutze Datentabellen mit dem select-Anschiebetisch-Reihen zu multiselect. Danach muss ich mit den Werten dieser Zeilen in PHP arbeiten. All das wirkt schon wie ein Zauber, Problem ist, dass ich nur einen Tisch innerhalb eines Formulars benutzen kann. Das heißt, ich bekomme nur die Ergebnisse der ersten Tabelle mit der Klasse "table_select" in eine $ _POST-Variable.
Ich habe versucht, den jQuery-Code so zu ändern, dass alle Objekte mit dieser Klasse iteriert werden, also habe ich ein Array erstellt und versucht, dieses Array mit [Array.length] zu pushen, bekomme aber nur Werte in Array [0].
Was mache ich falsch?
var table = [];
table[table.length] = $('.table_select').DataTable({
'initComplete': function(){
var api = this.api();
api
.rows()
.every(function(){
var data = this.data();
if(data[1] === '1'){
api.cells(this.index(), 0).checkboxes.select();
}
});
},
order: [[2, "asc"]],
paging:false,
info:false,
filter:false,
language: {
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json",
},
columns: [
null,
{ "visible": false},
null
],
'columnDefs': [{
'targets': 0,
'checkboxes': {
'selectRow': true,
'selectAll': false
}
}],
select: {
style: 'multi'
}
});
flen = table.length;
Flen ist immer "1" in diesem Fall, auch wenn i 4 Tabes haben mit dem "table_select" -Klasse.
Vielen Dank im Voraus für jede Hilfe!
Edit:
änderte ich den Code auf der Grundlage der Kommentare:
table = $('.table_select').DataTable({
'initComplete': function(){
var api = this.api();
api
.rows()
.every(function(){
var data = this.data();
if(data[1] === '1'){
api.cells(this.index(), 0).checkboxes.select();
}
});
},
order: [[2, "asc"]],
paging:false,
info:false,
filter:false,
language: {
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json",
},
columns: [
null,
{ "visible": false},
null
],
'columnDefs': [{
'targets': 0,
'checkboxes': {
'selectRow': true,
'selectAll': false
}
}],
select: {
style: 'multi'
}
});
alert(table.length);
Die Warnung in diesem Fall i Allways "0".
Edit2: Beispiel jsfiddle: jsfiddle.net/tu59s6Ls
ok, ich verstehe, was Sie meinen, missunderstood i die Beschreibung in http://www.w3schools.com/js/js_arrays.asp mit "Schieben Arrays". Ich brauche jedes Element (genau: Tabelle) mit der "table_select" -Klasse, um in einem Array zu sein, also wenn ich 4 Tabellen habe, brauche ich "table [0]", "table [1]", "Tabelle [2]", "Tabelle [3]". Wie kann ich das erreichen? – Daniel