while und if durcheinander - hiiiilfeeee

Horusab

Erfahrenes Mitglied
wieso wird die if schleife nicht ausgeführt
wenn ich das if wegnehme, dann wird die schleife 7 mal ausgeführt (Es kommt 7 mal "in der while schleife" auf dem bildschirm)
bidde helft mir, ich bin voll am verzweifeln
ps. es is noch n bisl asp drinne, einfach net beachten

PHP:
<%   
while(!anzcriterien.EOF) {
  aktkrit++;
		Response.write("case '"+aktkrit+"':");
        %>
		while(forvaravrg!=8) {
		document.write('in der while schleife<br>');
		document.write(forvaravrg: ' + forvaravrg);
		forvaravrg++;
		if(document.getElementsByName(elname)[forvaravrg].checked == true) {
						savearr<%=aktkrit%>[attidc] = forvaravrg;
						document.write('in if  <br>');
}

<%			
}
%>
 
nein, das hab ich vorher ausversehen gelöscht ^^
der fehler is also noch da :(
falsch abgeschrieben (-kopiert)
PHP:
<%   
while(!anzcriterien.EOF) {
  aktkrit++;
        Response.write("case '"+aktkrit+"':");
        %>
        while(forvaravrg!=8) {
        document.write('in der while schleife<br>');
        document.write('forvaravrg: ' + forvaravrg);
        forvaravrg++;
        if(document.getElementsByName(elname)[forvaravrg].checked == true) {
                        savearr<%=aktkrit%>[attidc] = forvaravrg;
                        document.write('in if  <br>');
}

<%            
}
%>
 
hoppala
die habe ich auch nicht kopiert ^^
sie is im richtigen src.
kommt davon, wenn man kürzt, aber ich glaub nicht das ihr hier so viel zeilen wollt, wie die gesammte schleife is.

ich hab gemerkt, dass wenn ich das if weglasse, die schleife perfekt funktioniert,
mit if wird sie nur einmal ausgeführt.

//EDIT//

was ich vergessen habe oben anzuhängen:
var elname = "a"+attidc;
wobei die variable attidcs vom benutzer übergeben wird, und die gruppe der radio buttons bedeutet.
ich kopiere gleich noch den src vom browserfenster raus, nur is der noch unübersichtlicher.... :(
 
Zuletzt bearbeitet:
PHP:
var elname = "a"+attidc; 
	var elnameid = 0;

var forvaravrg=-1;
switch(formidc) {
  case '1':
		while(forvaravrg!=7) {
document.write('fovar: ' + forvaravrg);
		forvaravrg++;
		if(document.getElementsByName(elname)[forvaravrg].checked == true) {
						savearr1[attidc] = forvaravrg;
						document.write('in if  <br>');
				}
			
		}
		var summe=0;
		for (i=0; i<savearr1.length; i++) {
    	summe = summe + savearr1[i];
		document.write('savearr: ' + savearr1.length);
		}
		durchschnitt = summe / savearr1.length;
		document.write('Durchschnitt: '+durchschnitt);
		return durchschnitt;
		break;case '2':
		while(forvaravrg!=7) {
document.write('fovar: ' + forvaravrg);
		forvaravrg++;
		if(document.getElementsByName(elname)[forvaravrg].checked == true) {
						savearr2[attidc] = forvaravrg;
						document.write('in if  <br>');
				}
			
		}
		var summe=0;
		for (i=0; i<savearr2.length; i++) {
    	summe = summe + savearr2[i];
		document.write('savearr: ' + savearr2.length);
		}
		durchschnitt = summe / savearr2.length;
		document.write('Durchschnitt: '+durchschnitt);
		return durchschnitt;
		break;case '3':
		while(forvaravrg!=7) {
document.write('fovar: ' + forvaravrg);
		forvaravrg++;
		if(document.getElementsByName(elname)[forvaravrg].checked == true) {
						savearr3[attidc] = forvaravrg;
						document.write('in if  <br>');
				}
			
		}
		var summe=0;
		for (i=0; i<savearr3.length; i++) {
    	summe = summe + savearr3[i];
		document.write('savearr: ' + savearr3.length);
		}
		durchschnitt = summe / savearr3.length;
		document.write('Durchschnitt: '+durchschnitt);
		return durchschnitt;
		break;case '4':
		while(forvaravrg!=7) {
document.write('fovar: ' + forvaravrg);
		forvaravrg++;
		if(document.getElementsByName(elname)[forvaravrg].checked == true) {
						savearr4[attidc] = forvaravrg;
						document.write('in if  <br>');
				}
			
		}
		var summe=0;
		for (i=0; i<savearr4.length; i++) {
    	summe = summe + savearr4[i];
		document.write('savearr: ' + savearr4.length);
		}
		durchschnitt = summe / savearr4.length;
		document.write('Durchschnitt: '+durchschnitt);
		return durchschnitt;
		break;
	}
 
Des is ja s komischste an allem:
Kein einziger Fehler
zuerst hab ich gedacht, diese objekte gibt es nicht (die radio buttons), aber sie sind da.
darum habe ich angefangen die schleife anzeigen zu lassen, was sie macht.

wenn ich nun auf einen der radios klicke, dann kommt folgende ausgabe:
fovar: -1

obwohl eigentlich die ganze schleife durchloffen werden soll.
+ Es ist dem pc total egal, ob es sich nun um den richtigen (checked) handelt, oder nicht

wenn die if wegkommt, dann passiert folgendes:
fovar: -1fovar: 0fovar: 1fovar: 2fovar: 3fovar: 4fovar: 5
ende...
gemein :)

//EDIT//
Falls ichs vergessen habe:
über das onClick() event von einem radio button wird diese funktion ausgeführt.
 

Neue Beiträge

Zurück