Benz: uncaught exception: not enough arguments.

Hallo!

ich weiss, solch eine Frage sollte man hier eher nicht stellen - ich bin aber schier am verzweifeln.
Ich möchte eine Adressliste mit Javascript ausgeben, so dass diese dynamisch clientseitig nach Kriterien geordnet werden kann.
Allerdings bekomme ich bei Ausführung im Browser imm eine

uncaught exception:[Exception..."Not enough arguments" nsresult: "0x80570001 (NS_Error_XPC_NOT_ENOUGH_ARGS)"  location:"JS FRAME:: http://voiceevent.de/home/intern/fotoalbum/index.php?page=adressList ::  sortTabelle :: line 103" data:no

Ich kann damit nicht mehr anfangen, als dass wohl der Funktionsaufruf nicht gültig ist, finde aber keinen Fehler. Meine provisorische Funktion:

function sortTabelle(column)
{
    var i=0;
    var ii=0;
    var zwischenspeicher=0;
    var wechselkandidat='';
    for(i=0;i<user_anzahl;i++) {
        for(ii=i;ii<user_anzahl;ii++) {
            wechselkandidat=sortArray[i];
            if (('uid'+sortArray[ii]+'['+column+']')<(wechselkandidat+'['+column+']')) {
                wechselkandidat=sortArray[ii];
                continue;
            }
            zwischenspeicher=sortArray[ii];
            sortArray[i]=sortArray[ii];
            sortArray[i]=zwischenspeicher;
        }
    }
    for(i=0;i=user_anzahl;i++) {
      var TR = document.getElementById('table1').insertRow();
      for(ii=0;ii<12;ii++) {
        var TD1=document.createElement('td');
        var TD1text=document.createTextNode(('uid'+sortArray[i]+'['+ii+']'));
        TD1.appendChild(TD1text);
        TR.appendChild(TD1);
      }
    }
}

Hierbei ist "sortArray" ein indiziertes Array das einfach nummern von 1-"user_anzahl".
Weiterhin sind Variablen hinterlegt nach dem Schema uid1[name] uid2[name] uid5[strasse]  etc.

Hoffe, jemand erbarmt sich und findet den Fehler!
MfG
Jens

  1. Hallo,

    Schwer zu verstehen, was deine Funktion eigentlich macht, aber mit

    zwischenspeicher=sortArray[ii];
                sortArray[i]=sortArray[ii];
                sortArray[i]=zwischenspeicher;

    passiert wohl etwas zuviel des Guten. Die mittlere Zeile hätte doch gereicht, oder?

    Ist "wechselkandidat" überhaupt ein Array? Dann müsste "sortArray" ein zweidimensionales Array sein:

    wechselkandidat=sortArray[i];
                if (('uid'+sortArray[ii]+'['+column+']')<(wechselkandidat+'['+column+']'))

    Don P

    1. Okay,
      ich muss wohl etwas mehr erklären.

      zwischenspeicher=sortArray[ii];
                  sortArray[i]=sortArray[ii];
                  sortArray[i]=zwischenspeicher;

      bedeutet ja eigentlich nur, dass 2 Variablen aus sortArray vertauscht werden sollen. zwischenspeicher ist nur als Platzhalter gedacht, sonst wäre dies ja nicht möglich.

      Anfangs sieht mein sortArray so aus:  sortArray[0]==0   sortArray[1]==1 etc.

      Es soll aber in die Reihenfolge gebracht werden, in der die Variablen, die nach der Regel
      'uid'+sortArray[i]+'['+column+']'  (könnte zum Beispiel die Variable "uid3[strasse]" ergeben)

      erstellt wurden, für ein aufsteigendes i alphabetisch geordnet werden!

      Gruss,
      Jens

      1. Hi,

        zwischenspeicher=sortArray[ii];
                    sortArray[i]=sortArray[ii];
                    sortArray[i]=zwischenspeicher;

        bedeutet ja eigentlich nur, dass 2 Variablen aus sortArray vertauscht werden sollen.

        Nein. Um die beiden zu tauschen, müßte an beide was zugewiesen werden.

        Ach ja, welche der Zeilen ist denn die in der Fehlermeldung erwähnte 103?

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Oh Gott,
          nach einer durchgemachten Nacht bin ich wohl einfach zu müde. Ich habe schon mehrere Fehler in der Funktion entdeckt, warhscheinlich muss ich einfach schlafen gehen.
          Melde mich wieder wenn ich die richtige Funktion gefunden hab, vielleicht interessiert es jemanden.

          MfG

          @andreas: umpf, bitter, dass ich auf das mit der zeile nicht selbst gekommen bin.
          Der Fehler laut Meldung liegt bei
                var TR = document.getElementById('table1').insertRow();
          was ja eigentlich komisch ist, so steht das in selfHTML und "table1" gibt es 100%
          <table id='table1' border=1 onclick="sortTabelle('name');">

          Aber ich sollte nicht hierrein schreiben, sondern schlafen gehen, mein Fehler.

          1. Hi,

            var TR = document.getElementById('table1').insertRow();

            Muß da nicht noch angegeben werden, vor der wievielten Zeile die neue Zeile eingefügt werden soll?

            A la
            var TR = document.getElementById("Tabelle").insertRow(Zeile);
                                                                  ^^^^^

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. Natürlich... auch noch... Das stand sogar zuerst drin, aber auf meiner Fehlersuche hatte ich es unsinnigerweise wieder rausgeworfen. Das ganze ist ein furchtbarer Code.
              Verzeiht, dass ich gepostet habe!

      2. Hallo

        ich muss wohl etwas mehr erklären.

        zwischenspeicher=sortArray[ii];
                    sortArray[i]=sortArray[ii];
                    sortArray[i]=zwischenspeicher;

        bedeutet ja eigentlich nur, dass 2 Variablen aus sortArray vertauscht werden sollen. zwischenspeicher ist nur als Platzhalter gedacht, sonst wäre dies ja nicht möglich.

        Du meinst also, dass Du in Wirklichkeit

          
            // tausche die Inhalte von sortArray[i] und sortArray[ii]  
            // sichere den Inhalt von sortArray[ii]  
            zwischenspeicher=sortArray[ii];  
            // überschreibe den Inhalt von sortArray[ii] mit dem Inhalt von sortArray[i]  
            sortArray[ii]=sortArray[i];  
            // überschreibe den Inhalt von sortArray[i]  
            // mit dem zwischengespeicherten Inhalt von sortArray[ii]  
            sortArray[i]=zwischenspeicher;  
        
        

        schreiben wolltest?

        Ist das einer der Fehler, die Du schon bereinigt hast?

        Freundliche Grüße

        Vinzenz