Moin,
Ich bin mal mit der Rechnung fertig, und das war echt ein hartes Stück für mich. Für dich natürlich PillePalle
Bisher funktioniert alles super, da es aber Items im Spiel gibt, die sich nur 16 Stück Stapeln lassen, also 1 Stack = 16 Stück, habe ich da eine merwürdige Lösung gefunden. Zum glück gibt es von den 16er Stacksnur sehr wenige, daher habe ich das mit ein div Tag erledigt. Der soll dann den Eintrag ändern, wo schon Stack64 als Variable ist. Denn die meisten Items und Blöcke im Spiel lassen sich immer bis zu 64 Stück stapeln.
Das heißt, ich will eine 4. Tabelle, die ich auch schon erstellt habe, und dort soll gleich in Stack umgerechnet werden. Nun funktionmiert alles perfekt, naja, fast. Das hier ist mein Problem: document.getElementById("Holz").innerHTML = "---";
Ich musste extra --- eingeben, damit der Script erstmal funktioniert. Ich kann Zahlen und Wörter eingeben, und die werden auch als diese angezeigt. Aber wenn ich die --- durch variable Stack16 ersetze, dann funktioniert komischerweise die Rechnung nicht mehr. Vllt hast du da ein Fehler entdeckt.
[PHP]
<html>
<body>
<script>
var preis = {};
function Init()
{
preis = {};
preis['Buecherregal'] = function() { return preis['Papier']() + preis['Buch']() };
preis['Buch'] = function() { return preis['Papier']() * 3; };
preis['Papier'] = function() { return 0.2 };
preis['Holz'] = function() { return 20.25; }
preis['Holzplanken'] = function() { return preis['Holz']() / 4 };
preis['Eisenbarren'] = function() { return 144 };
preis['Eisenerz'] = function() { return (8 * preis['Eisenbarren']() - 27) / 8 };
var AuswahlListe = document.getElementById("AuswahlListe");
AuswahlListe.innerHTML = "";
for (var gegenstand in preis)
{
if(preis.hasOwnProperty(gegenstand))
{
// Liste wird erstellt
var newOption = document.createElement('option');
newOption.value = preis[gegenstand]();
newOption.innerHTML = gegenstand;
AuswahlListe.appendChild(newOption);
}
}
}
function Ausgabe ()
{
var i,Stack;
/* jeden Radiobutton abchecken : */
for (i=0;i<2;i++){
if (document.form.schalter[i].checked){
Stack=document.form.schalter[i].value;
}}
var Item = form.Liste.selectedIndex;
var Auswahl = form.Liste.options[Item].value;
var Multi = form.Zahl.value;
var ergebnis = document.getElementById("Ergebnis");
ergebnis.innerHTML = "";
for (var gegenstand in preis)
{
if(preis.hasOwnProperty(gegenstand))
{
var Bild_Name = gegenstand + '.png"'
var Bild = '<img src="http://www.paules-pc-forum.de/forum/images/' + Bild_Name + ' width="32" height="32">'
var Rechnung = Math.round(Stack*(Auswahl / preis[gegenstand]() * Multi)*10 )/10
var Stack64 = Math.round(Stack/64*(Auswahl / preis[gegenstand]() * Multi)*10 )/10
var Stack16 = Math.round(Stack/16*(Auswahl / preis[gegenstand]() * Multi)*10 )/10
var newOption = document.createElement('tr');
newOption.innerHTML = "<td>"+" "+Bild+" "+"</td><td>"+" "+gegenstand+" "+"</td><td>"+" "+Rechnung +" "+"</td><td>"+'<div id="'+gegenstand+'">'+Stack64+"</div>"+"</td></tr>";
ergebnis.appendChild(newOption);
}
}
//Eintrag für 16er Stack
document.getElementById("Holz").innerHTML = "---";
}
window.onload = Init;
</script>
<FORM ACTION="" METHOD="GET" NAME="form" id="formID">
<p>
<label for="ZahlID"></label>
<input type="button" onClick="Ausgabe()" name="button" value="Suche/Biete">
<SELECT NAME="Liste" ID="AuswahlListe" SIZE="1">
</SELECT>
Anzahl:
<input type="text" name="Zahl" id="ZahlID">
<input type="radio" name="schalter" id="schalterID" value="1" checked>
Stück(e)
<input type="radio" name="schalter" id="schalterID" value="64">
Stack(s) <br>
</p>
</FORM>
<br>
<br>
<table id = "Ergebnis">
</table>
</body>
</html>
[/PHP]
mfg EKI