Sponsor-Board.de
[Hilfe] jQuery mehrdimensionales Array

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: [Hilfe] jQuery mehrdimensionales Array (/showthread.php?tid=39018)


[Hilfe] jQuery mehrdimensionales Array - Aaron - 19.05.2013 23:54

Abend Leute,
habe nen Problem, bei dem ich durch Google nicht weiterkomme Wink

Ich hab nen mehrdimensionales Array, das übergeordnete Array heißt produktAll, für jedes Produkt soll ein Array geschrieben werden (jeweils produktOne) welches dann immer in produktAll geschrieben werden soll, dann soll produktAll in nem div ausgegeben werden :

Code:
$(document).ready(function () {
    var produktAll = new Array;
    $("a.produktj").click(function () {
        var produktOne = new Array;
                    
        var id = $(this).data("id");
        var menge = $(this).data("menge");
        var preis = $(this).data("preis");
        var name = $(this).data("name");
        
        var index = $.inArray(produktOne, produktAll);
            if(index == -1) {
                //wenn nicht gefunden, adden
                produktOne[id] = id;
                produktOne[menge] = menge;
                produktOne[preis] = preis;
                produktOne[name] = name;
                produktOne[anzahl] = 1;
                produktAll.push(produktOne);
            } else {
                //falls vorhanden anzahl +1
                produktAll[index][anzahl]++;
            }
                    
            $.each(produktAll, function(i,v){
                $.each(v, function(i2,v2){
                    $("#warehier").append(v2);
                });
            });
                    
    });
});


leider klappt das nicht, es soll das Array halt in den Div schreiben, denke man weiß was gemeint ist Wink bräuchte dringend Hilfe

Über jeden hilfreichen Beitrag dankbar!

mfg Aaron


RE: [Hilfe] jQuery mehrdimensionales Array - Loster - 20.05.2013 08:05

Code:
produktOne.push(produktAll);

// sollte heißen

produktAll.push(produktOne);


Wenn ich das jetzt so auf die schnelle richtig interpretiert habe.


RE: [Hilfe] jQuery mehrdimensionales Array - Aaron - 20.05.2013 13:55

ich hab das mal geändert, danke Wink

Leider klappt das ganze immernoch nicht ...


RE: [Hilfe] jQuery mehrdimensionales Array - Loster - 20.05.2013 13:59

Schrecklich das es hier kein Syntaxhighligthing gibt...

Code:
$(document).ready(function () {
    var produktAll = {};
    $("a.produktj").click(function () {
        var produktOne = {};
                    
        var id = $(this).data("id");
        var menge = $(this).data("menge");
        var preis = $(this).data("preis");
        var name = $(this).data("name");
        
        var index = $.inArray(produktOne, produktAll);
            if(index == -1) {
                //wenn nicht gefunden, adden
                produktOne['id'] = id;
                produktOne['menge'] = menge;
                produktOne['preis'] = preis;
                produktOne['name'] = name;
                produktOne['anzahl'] = 1;
                produktAll.push(produktOne);
            } else {
                //falls vorhanden anzahl +1
                produktAll[index]['anzahl']++;
            }
                    
            $.each(produktAll, function(i,v){
                $.each(v, function(i2,v2){
                    $("#warehier").append(v2);
                });
            });
                    
    });
});




RE: [Hilfe] jQuery mehrdimensionales Array - Dennis - 20.05.2013 14:05

schau mal nach, ob die funktion inArray auch einen index zurückliefert. Das hört sich für mich nur nach einer boolschen rückgabe an.
Dementsprechend musst du dann auch die If-Abfrage gestalten, -1 gibts da nicht, nur true und false


RE: [Hilfe] jQuery mehrdimensionales Array - Loster - 20.05.2013 14:10

Nein, [Link: Registrierung erforderlich] gibt schon das richtige zurück.


RE: [Hilfe] jQuery mehrdimensionales Array - Dennis - 20.05.2013 14:14

nimmt aber nur wert und sucht in einem array
jQuery.inArray( value, array [, fromIndex ] )

Vielleicht liegt es daran, dass er das Array nicht verarbeiten kann wenn man das anstatt einem Wertes übergibt.


RE: [Hilfe] jQuery mehrdimensionales Array - Loster - 20.05.2013 14:18

Also ich glaube es war ein anderer Fehler (schau in meinem Post von 14:59), dort wird nämlich versucht mit einer nicht vorhandenen Variable zu arbeiten und die Restlichen Keys ergeben auch keinen Sinn, weil es Variablen sind. Es sollten, denke ich mal, feste Keys sein.


RE: [Hilfe] jQuery mehrdimensionales Array - Aaron - 20.05.2013 14:41

hab das ganze mal von dir übernommen Loster, leider noch keinen Erfolg

welche Keys ergeben keinen Sinn ? Diese : produktOne[id] ?
Die sind ja fest, ihnen werden die Variablen zugewiesen

gibts bei Javascript nicht irgendeinen Errorlog ?


RE: [Hilfe] jQuery mehrdimensionales Array - Dennis - 20.05.2013 14:57

mit strg + umschalt + j kommst du in die fehlerkonsole bei firefox, da siehste dann alles aufgezeichneten fehler. also am besten konsole clearen und das script nochmal neuaufrufen, dann hast du alle fehler dort.


RE: [Hilfe] jQuery mehrdimensionales Array - Aaron - 20.05.2013 15:08

ah ok, danke Wink

folgendes spuckt er mir aus : TypeError: 'undefined' is not a function (evaluating 'produktAll.push(produktOne)')

so wirklich weiß ich damit aber nichts anzufangen ...

Edit: Behoben!

habs das Array nun einfach so befüllt :

var produktOne = {id: id, menge: menge, preis: preis, name: name, anzahl : 1};

das einzige was nun noch nicht geht ist, dass er anstatt die Anzahl + 1 zu setzen, ein neues Array hinzufügt - also geht die if Abfrage wohl net


RE: [Hilfe] jQuery mehrdimensionales Array - Dennis - 20.05.2013 15:39

produktAll[index][anzahl] = produktAll[index][anzahl]+1;

mach das mal so, ich bin mir nicht sicher, ob java das so aktzeptiert mit dem inkrement-zeichen.


RE: [Hilfe] jQuery mehrdimensionales Array - Loster - 20.05.2013 15:42

Dann aber bitte 'anzahl' und nicht die Variable anzahl Smile


RE: [Hilfe] jQuery mehrdimensionales Array - Aaron - 20.05.2013 16:20

danke euch

das Problem scheint die If Abfrage zu sein, da er nie den else Block abarbeitet, mit alert getestet Biggrin

geht es denn sicher, das man mit inArray abfragt, ob ein Array in ein Array ist ?