Variablen werden möglicherweise nicht richtig interpretiert

Aser

Erfahrenes Mitglied
Hi,
ich habe gegoogelt und die Suchfunktion genutzt, aber nix passendes gefunden
bei mir wird folgendes Script nicht korrekt ausgeführt

alert('feldname:'+feldname); wird noch angezeigt

alert('felnamewert:'+feldnamewert); wird aber nicht mehr angezeigt

mein Verdacht ist, dass die Variablen als Namen intepretiert werden... hm?

Herzlichen Dank im Voraus für Ideen,
sers,
Arthur


Code:
//                           link formular    formularfelder   linkparameter linkdiv
function formularabschicken (link, formulartitel, formularfelder, linkparameters, linkdiv)
{

alert('formularabschicken wird gestartet');  
alert('formulartitel:'+formulartitel);
   durchzugehendezeile=0;
   formularfelderteil = formularfelder.split(', ');
   
   alert('formularfelderteile:'+formularfelderteil);
   
   linkparameters=linkparameters;
   
   while(durchzugehendezeile < 200)
   {
	   alert('erster durchlauf geht');
      feldname=formularfelderteil[durchzugehendezeile];       
	
alert('feldname:'+feldname);	
	
      feldnamewert=document.formulartitel.feldname.value; // hier ist das Problem glaube ich, bei formulartitel und feldname handelt es sich um variablen
alert('felnamewert:'+feldnamewert);

     linkparameters=linkparameters+'&'+feldname+'='+feldnamewert;
	 
	 durchzugehendezeile++;
   }
   
alert('einsetzen wird ausgefuerht');   
einsetzen (link, linkparameters, linkdiv)   

}
 
Hi,

in dieser Zeile fehlt zumindest das "d":
Code:
alert('feldnamewert:'+feldnamewert);


mfg Maik
 
Moin,

ohne das Formular und die Parameter zu sehen, kann man da nur generell antworten.

Code:
feldnamewert=document.formulartitel.feldname.value

...funktioniert so natürlich nicht.

greife mit den Variablen über die forms- bzw. elements-Auflistung zu.

Code:
feldnamewert=document.forms[formulartitel].elements[feldname].value

Das geht allerdings nur solange gut, wie du nur 1 Formular mit dem name formulartitel im Dokument hast, und in diesem Formular wiederum nur 1 Formularfeld mit dem name feldname

Sollte dies nicht der Fall sein, müsstest du dort einen Zwischenschritt einlegen, da die forms-und elements-Auflistungen je nach Browser unterschiedlich gehandhabt werden.
 
herzlichen Dank,
genau daran lags
Code:
feldnamewert=document.forms[formulartitel].elements[feldname].value

der Rest wurde beim en berücksichtigt

beim testen ist das einzige, was noch Fehler macht
durchzugehendezeile++;

aber das werde ich hoffentlich noch hinkriegen, weil mit
durchzugehendezeile='400';
geht alles super (halt nur fuer den ersten Wert)

merci,
sers,
Arthur
 
tut mir leid den Erledigt-Status wieder zu entfernen

mein Verdacht ist, dass beim zweiten Durchlauf der Counter eins nach oben geht, dann die Variable leer ist (weil soviele Werte nicht vorhanden sind) und das Script abbricht...
dann muss ich halt nur soviele Durchläufe machen, wie Einträge im Arrey vorhanden sind, mein Verdacht ist allerdings, dass die Summe 2+2=22 nur angehongen wird, statt addiert (als Beispiel)

Code:
//                           link formular    formularfelder   linkparameter linkdiv
function formularabschicken (link, formulartitel, formularfelder, linkparameters, linkdiv)
{

alert('formularabschicken wird gestartet');  
alert('formulartitel:'+formulartitel);
   durchzugehendezeile=0;
   formularfelderteil = formularfelder.split(', ');
   
   alert('formularfelderteile:'+formularfelderteil);
   
   linkparameters=linkparameters;
   alert('laenge:'+formularfelderteil.length+2);
   
   while(durchzugehendezeile < formularfelderteil.length+2)
   {
	   alert('erster durchlauf geht');
      feldname=formularfelderteil[durchzugehendezeile];       
	
alert('feldname:'+feldname);	
	
      feldnamewert=document.forms[formulartitel].elements[feldname].value; // hier ist das Problem glaube ich, bei formulartitel und feldname handelt es sich um variablen
alert('felnamewert xxxxxxxxx:'+feldnamewert);

     linkparameters=linkparameters+'&'+feldname+'='+feldnamewert;
	 
	 alert('linkparameters zzzzzzzzz'+linkparameters);
	 
	 durchzugehendezeile++;
   }
   
alert('einsetzen wird ausgefuerht yyyyyyyyyyyyyyyyyyyyyy');   
einsetzen (link, linkparameters, linkdiv);   

}

dann mach ich nochmal meine Augen weit auf:)
Hat jemand ne Idee?
Dank im Voraus,
Arthur






Edited-------------------------
mit diesem Workaround gehts:
Code:
//                           link formular    formularfelder   linkparameter linkdiv
function formularabschicken (link, formulartitel, formularfelder, linkparameters, linkdiv)
{

alert('formularabschicken wird gestartet');  
alert('formulartitel:'+formulartitel);
   durchzugehendezeile=0;
   formularfelderteil = formularfelder.split(', ');
   
   alert('formularfelderteile:'+formularfelderteil);
   
   linkparameters=linkparameters;
   alert('laenge:'+formularfelderteil.length+2);
   
   limit=formularfelderteil.length;
   limit--;
   
   while(durchzugehendezeile < limit)
   {
	   alert('erster durchlauf geht');
      feldname=formularfelderteil[durchzugehendezeile];       
	
alert('feldname:'+feldname);	
	
      feldnamewert=document.forms[formulartitel].elements[feldname].value; // hier ist das Problem glaube ich, bei formulartitel und feldname handelt es sich um variablen
alert('felnamewert xxxxxxxxx:'+feldnamewert);

     linkparameters=linkparameters+'&'+feldname+'='+feldnamewert;
	 
	 alert('linkparameters zzzzzzzzz'+linkparameters);
	 
	 durchzugehendezeile++;
   }
   
alert('einsetzen wird ausgefuerht yyyyyyyyyyyyyyyyyyyyyy');   
einsetzen (link, linkparameters, linkdiv);   

}
 
Zuletzt bearbeitet:
Zurück