• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Js noob sucht hilfe

Status
Für weitere Antworten geschlossen.

Petrus

Neues Mitglied
ich will dess wenn man in ner select eine von den optionen anklikt dasser dann ne funktion aufruft und was zusammen zählt mom hab ichs so
Code:
<head>
<script language="javascript">
function rechner(vari, wert)
{
	if(vari = 1)
	{
		v1 = wert;
	}
	else if(vari = 2)
	{
		v2 = wert;
	}
	else if(vari = 3)
	{
		v3 = wert;
	}
	else if(vari = 4)
	{
		v4 = wert;
	}
	else if(vari = 5)
	{
		v5 = wert;
	}
	else if(vari = 6)
	{
		v6 = wert;
	}
	else if(vari = 7)
	{
		v7 = wert;
	}
	else if(vari = 8)
	{
		v8 = wert;
	}
	document.getElementById('c').innerHTML = v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8;
}
</script>
</head>
.
.
.
<table align="center" border="0">
<tr>
	<td id="c"></td>
</tr>
</table>
<form action="next" method="post">
<select name="SSS1">
<option value="0" onClick="rechner(1, 0)">0</option>
<option value="1" onClick="rechner(1, 1)">1</option>
<option value="2" onClick="rechner(1, 2)">2</option>
<option value="3" onClick="rechner(1, 3)">3</option>
<option value="4" onClick="rechner(1, 4)">4</option>
<option value="5" onClick="rechner(1, 5)">5</option>
<option value="6" onClick="rechner(1, 6)">6</option>
</select>
.
.
.

aber aus irgend nem grund funzt des nich wie gesagt js is nich so mein vall desshalb, kann mir bitte jemand helfen?
 
Werbung:
Um ehrlich zu sein verstehe ich den ganzen Sinn des Scriptes nicht...


btw: Such mal auf Selfhtml nach "switch".
 
du verstehst warscheinlich den sinn nicht weil ich rund 1000 zeilen rausgekürtzt hab weil sie für mein problem nicht wichtig sind das ist ein teil eines spiels und da kosten bestimmte sachen eine gewisse mänge an recoursen und die will ich zusammen rechnen um dem benutzer anzuzeigen wieviel er schon verbraucht hat von denen select boxes kommen normalerweise noch 7 andere desshalb frägt der oben in der funktion auch 8 stück ab ich hoffe ich konnte des sinn jetzt gut genug erkläre dass mit jemand helfen kann bitte

achja des mit dem selfhtml warn flop ich hab den begriff da nich gefunden
 
Werbung:
Also ich hab switch mit der suche direkt gefunden: http://de.selfhtml.org/javascript/sprache/bedingt.htm#switch :>

@topic:

Ich würde das ganze anders lösen:

Als erstes bekommt jede der Select-Teile eine Frei wählbare ID (hauptsache keine zahl am Anfang!). Dann schreibst du eine kurze funktion:
PHP:
function erg(was){
var ergebnis = parseFloat(document.getElemenetById(was).options[document.getElementById(was).selectedIndex].value);
return ergebnis;
}
Diese Funktion gibt den Wert des Value-Attributes zurück von der box zuück, die ausgewählt ist. Die übergebene Variable lässt das ganze auf einen bestimmten select-tag "machen". das ganze wird dann auch noch mittes parseFlost() zu einer zahl gemacht.

Und nun die Hauptfunktion:
PHP:
function summieren(){
var summe = erg("erstes") + erg("zweites") + erg("drittes") + erg("viertes"); 
//das geht so weiter, bis man alle Select-Tags drin hat. Dabei muss in die
//Klammer eine gültige id rein
document.getElementById('ergebnisfeld').firstChild.nodeValue = summe;
}

"ergebnisfeld" ist ein div, der am Ende das ergebnis in sich stehen haben wird. In jeden Seleect-Tag muss ein onchange rein, welches die funktion "summieren" aufruft.

Das ganze ist ungetestet, sollte aber funktionieren.

Bei fragen einfach posten, das script ist für einen Anfänger sicher unverständlich ;)
 
um erlich zu sein ich hab wirklich davon so gut wie nichts kappiert weil ich normal immer mit php arbeite und nich js aber ich hab ma versucht des in des script einzubauen aber ich ich des gemacht hab hats nich funktioniert könntest du mir ein beispiel mit einer select zeigen dass ichs raff wies geht?
 
HTML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>berechnung</title>
<script type="text/javascript">
<!--
function erg(was){
var ergebnis = parseFloat(document.getElementById(was).options[document.getElementById(was).selectedIndex].value);
return ergebnis;
} 
function rechne(){
var summe = erg("erstes") + erg("zweites") + erg("drittes");
//das geht so weiter, bis man alle Select-Tags drin hat. Dabei muss in die
//Klammer eine gültige id rein
document.getElementById('ergebnisfeld').firstChild.nodeValue = summe + " kosten";
} 
//-->
</script>
</head>
<body onload="rechne()">
<div id="ergebnisfeld" >&nbsp;</div>
<div>
<select id="erstes" onchange="rechne()">
 <option value="1">irgendwas</option>
 <option value="3">nochwas</option>
 <option value="10">oder doch das?</option>
</select>
<select id="zweites" onchange="rechne()">
 <option value="2">hier</option>
 <option value="6">kann man</option>
 <option value="9">frei w&auml;hlen</option>
</select>
<select id="drittes" onchange="rechne()">
 <option value="3">ganz</option>
 <option value="5">viel</option>
 <option value="14">kosten</option>
</select>
</div>
<div style="position:absolute; bottom:0px;">Diese Seite enth&auml;lt valides XHTML 1.0 <br />
<a href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" style="border:0px; height:31px; width:88px;" /></a>
</div>
</body>
</html>
Dabei ist wichtig, was im Value-Teil des Select-Tags steht.
 
Werbung:
ich habs jetzt so gemacht

Code:
function erg(was){
var ergebnis = parseFloat(document.getElemenetById(was).options[document.getElementById(was).selectedIndex].value);
return ergebnis;
} 
function summieren(){
var summe = erg("a") + erg ("b");
//das geht so weiter, bis man alle Select-Tags drin hat. Dabei muss in die
//Klammer eine gültige id rein
document.getElementById('c').innerHTML = summe;
} 
</script>
.
.
.
<table>
<tr>
<td id="c"></td>
</tr>
</table>
<form action="?op=chargen&nav=ing&seite=chargens4" method="post" name="form">
.
.
.
</select>
<select onChange="summieren()" id="a">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<br>
<select onChange="summieren()" id="b">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
.
.
.
is ja im prinzip s gleiche wie des was du hast oder? auf jeden gibt er bei mir nix aus entweder ich bin blind oder zu blöd für js
 
Zwischen dem erg und der Kalmmer darf kein Leerzeichen sein, du hats geschrieben
Code:
var summe = erg("a") + erg ("b")

Richtig wäre aber:
Code:
var summe = erg("a") + erg("b")
Wennd as nicht klappt, dann poste mal den Fehler aus der JS-Konsole.


Bin mir zudem nicht sicher, ob das Feld. wo man das reinschreibt nicht vorher schon einen Inhalt haben muss, also am besten direkt in die Zelle ein &nbsp; reinpacken.


Im übrigen rate ich auch nocht eher zu .firstChild.nodeValue statt zu .innerHTML, da du ja nur test übergibst, und innerHTML nicht von allen browsern "verstanden" wird: http://de.selfhtml.org/javascript/objekte/all.htm#inner_html
 
Werbung:
Ja, da war ein kleiner Fehler drinne, hast wohl den ersten Code kopiert.

Code:
var ergebnis = parseFloat(document.getElemenetById(was).options[document.getElementById(was).selectedIndex].value);
steht da, richtig wäre es aber

Code:
var ergebnis = parseFloat(document.getElementById(was).options[document.getElementById(was).selectedIndex].value);
//                                          ^--Da musste das "e" weg.
So müsste es klappen.


btw: ja.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben