Autor Zpráva
Mody
Profil
Ahoj. mám takovýto script:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Nová stránka 1</title>
</head>

<body>
<p>Jeden voják stojí 1 zlaktu</p>
<form name="nakup" method="POST" action="#" onsubmit="return false">
<p><input type="text" name="postav" size="20">&nbsp;
<input type="submit" value="Naverbij vojáky" onClick="naverbuj()"></p>
</form>
Máš <span id="zlatky"></span>&nbsp; zlatky(ek)<br>
Máš <span id="vojaci"></span>&nbsp; vojaka(ků)
<script language="JavaScript">
{ var penize = 100;
  var armada = 0;
  window.document.getElementById("zlatky").innerHTML = penize;
  window.document.getElementById("vojaci").innerHTML = armada; 
  function naverbuj()
  { var stavba = document.nakup.postav.value;
    if ( document.nakup.postav.value == 0 ) alert('Musíš to pole vyplnit abys mohl postavit armádu!!');
    if ( stavba > penize ) alert('Nemáš tolik peněz 1 voják stojí 1 zlatku!!')== false ;
    if ( stavba < penize ); { if( stavba != 0 ); {  var zustatek = penize - stavba;
    			                				  var garda = armada - (-stavba);
											      window.document.getElementById("zlatky").innerHTML = zustatek;
    			                				  window.document.getElementById("vojaci").innerHTML = garda;
}}}} 


</script>





</body>

</html>


Když si postavým třevba 12 vojáku tak se mi to odečte od zlatek a přičte k vojákům ale když pak chci postaviot ještě 2 tak se mi to ale zase odečítá od plného počtu a mám tedy celkem vojáky 2 nedolo by se to ošetřit tak aby se mi když postavým další dve odečetli od zbývajících 88. zlatek a přičetlo k 12 vojákům. Děkuji předem za rady
peta
Profil
stavit
tak se mi to odečte - tak se mi co od ceho?
a přičte k vojákům - co k cemu?
tak se mi to ale zase odečítá od plného počtu - co od ceho?

<script language="JavaScript">
{
ta zavorka tam nepatri, JS konzola by to mela hlasit jako chybu

var penize = 100;
var zustatek = penize - stavba;
window.document.getElementById("zlatky").innerHTML = zustatek;
No jo, ale promennou penize nikde nemenis, pouze od ni odecitas. Co kdyby jsi pod to pripsal jeste
penize = zustatek;

urcite bych si to zjednodusil:
function objekt(id)
{return (window.document.getElementById(id) ? window.document.getElementById(id) : id);}
potom
z = objekt('zlatky').innerHTML;
v = objekt("vojaci").innerHTML;
...
objekt('zlatky').innerHTML = z;
objekt("vojaci").innerHTML = v;
a pod...
Mody
Profil
peta
var penize = 100;
var zustatek = penize - stavba;
window.document.getElementById("zlatky").innerHTML = zustatek;
No jo, ale promennou penize nikde nemenis, pouze od ni odecitas. Co kdyby jsi pod to pripsal jeste
penize = zustatek;


var penize = 100;
  var armada = 0;
  var penize = zustatek; // Sem ???
  window.document.getElementById("zlatky").innerHTML = penize;
  window.document.getElementById("vojaci").innerHTML = armada; 

if ( stavba < penize ); { if( stavba != 0 ); {  var penize = penize - stavba;
                                                                     var garda = armada - (-stavba);
                                                                     var penize = zustatek;// nebo SEm??
								     window.document.getElementById("zlatky").innerHTML = penize;
    			                		             window.document.getElementById("vojaci").innerHTML = garda;
Mody
Profil
nějak jsem to nepochopil kam to mám dát
peta
Profil
Mody
Ty ses programator, tak musis vedet, kde to chces. Ja ti jenom oznamuji, ze chces menit hodnotu penize, ale nikde tuto hodnotu nemenis. To je ta chyba, kterou hledas.
Take by jsi si mel kontrolovat, zda nejsou penize mensi nez 0 nez to ulozis.

var = deklarace promenne, pokud uz je vytvorena, tak tam byt nemusi.

Takova pomucka, vypis si tabulku se vsemi promennymi a radky budou prikazy. Kdyz prikaz zmeni nejakou promenou, napis si novou hodnotu do tabulky a hned uvidis, o cem mluvim.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0