Počty mezi dvěma selectory – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Počty mezi dvěma selectory – JavaScript, AJAX, jQuery – Fórum – Programujte.comPočty mezi dvěma selectory – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
adosl0
Duch
23. 10. 2008   #1
-
0
-

Ahoj všichni mám jeden velký problém. Mám dvě pole select (prvni a druhy) a potřebuji udělat javascript aby když vyberu třeba káva a v krabici aby se mi do pole input první oběvilo že jsem zvolil káva do pole input druhy že jsem zvolil v krabici a v poli imput cena se spočítala cena 100-10. Je nějaký jednoduchý javascript který by tohle zvládnul. Já tohle nezvládám tak prosím moc o radu. Nebo nějaký odkaz kde je podobný příklad a mohl bych to nějak nastudovat. Předem všem strašně moc děkuji.

<select name=prvni>

<option id="100" value="káva">káva</option>
<option id="150" value="čaj">čaj</option>
<option id="200" value="mléko">mléko</option>
</select>

<select name=druhy>
<option id="5" value=" value="v tašce">v tašce</option>
<option id="10" value=" value="v krabici">v krabici</option>
<option id="20" value=" value="bez obalu">bez obalu</option>
</select>
<input type=text name=prvni>
<input type=text name=druhy>
<input type=text name=cena>


Nahlásit jako SPAM
IP: 77.93.205.–
Reklama
Reklama
soudruh0
Newbie
23. 10. 2008   #2
-
0
-

Přidej s selectum onchange který zavolá funkci, v které získáš hodnotu ( hodnota = self.document.forms.jmeno_formu.jmeno_prvku.value; )
a pak to jen pomocí js zpočítáš a nastavíš to jako hnodnotu (document.jmeno_formu.jmeno_prvku.value = hodnota;
), nebo to vypíšeš přez innerHTML do DIVu

Nahlásit jako SPAM
IP: 82.100.63.–
adosl0
Duch
24. 10. 2008   #3
-
0
-

To soudruh :

Tak mám tento kod:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
<script type="text/javascript">
// Funkce nam vybere ze selectu zvolenou polozku tu pak preda inputu hodnota
function VyberDruh(selected)
{
var oDruh = document.getElementById("druh");
var sDruh= parseInt(selected[selected.selectedIndex].value);
if(sDruh != 0)
{
oDruh.value = sDruh;
}
else
{
oDruh.value = "";
}
}
function VyberProvedeni(selected)
{
var oProvedeni = document.getElementById("provedeni");
var sProvedeni= parseInt(selected[selected.selectedIndex].value);
if(sProvedeni != 0)
{
oProvedeni.value = sProvedeni;
}
else
{
oProvedeni.value = "";
}
}
// Funkce nam nasobi input hodnota s input nasobic
function vysledek(e)
{
var oDruh = document.getElementById("druh");
var oProvedeni = document.getElementById("provedeni");
var oVysledek = document.getElementById("vysledek");

if(oDruh != "")
oVysledek.value = parseInt(oDruh.value - oProvedeni.value);
else
oVysledek.value = 0;
}


</script>
</head>
<body>
<form action="#" method="post">
<select name=druh onChange="VyberDruh(this.options)">
<option value="0-Nic" selected>Vyber</option>
<option value="1000">káva</option>
<option value="2000">čaj</option>
<option value="3000">mléko</option>
</select>
<select name=provedeni onChange="VyberProvedeni(this.options)">
<option value="0-Nic" selected>Vyber</option>
<option value="300">plechovka</option>
<option value="200">krabice</option>
<option value="100">sáček</option>
</select>
<input type=text id="druh" name="druh">
<input type=text id="provedeni" name="provedeni">
<input type=text id="vysledek" name="vysledek" value="0">
</form>
</body>
</html>
ale nějak mi to nechce počítat. Můžete mi to někdo opravit kde je chyba? A jak docílím toho aby se nedalo do polí s id druh provedeni a vysledek nic vepsat? A jak udělat aby se výsledek zobrazil až po zvolení obou selectů?

Opět moc děkuji za pomoc.

Nahlásit jako SPAM
IP: 77.93.205.–
soudruh0
Newbie
24. 10. 2008   #4
-
0
-

Dle mých slabých znalostí jajascriptu to budeš muset provést bez toho slovíčka var, protoře pokud ho uvedeš, tak se jedná o lokální proměnnou, která platí jen ve funkci
Jinak zkus si postupně alertovat hodnoty.

Nahlásit jako SPAM
IP: 82.100.63.–
adosl0
Duch
25. 10. 2008   #5
-
0
-

To soudruh : tak var jsem smazal ale nefunguje to stále. a jsem úplný javascript zelenáč učím se z příkladů. Ale příklad na to jak udělat to co chci jsem nenašel proto jsem se s mím problémem obrátil sem a doufám že mi to někdo pomůže vyřešit. Nemůže mi sem někdo vypsat script co bude provádět odčítání provedeni od druh.

Nahlásit jako SPAM
IP: 77.93.205.–
adosl0
Duch
26. 10. 2008   #6
-
0
-

Tak jsem zase o kousek dál.
Můj kod vypadá nyní takto:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Dokument bez názvu</title>
<script type="text/javascript">
// Funkce nam vybere ze selectu zvolenou polozku tu pak preda inputu hodnota
function VyberDruh(selected)
{
var oDruh = document.getElementById("druh");
var svyberd= parseInt(selected[selected.selectedIndex].value);
if(svyberd != 0)
{
oDruh.value = svyberd;
}
else
{
oDruh.value = "";
}
}
function VyberProvedeni(selected)
{
var oProvedeni = document.getElementById("provedeni");
var svyberp= parseInt(selected[selected.selectedIndex].value);
if(svyberp != 0)
{
oProvedeni.value = svyberp;
}
else
{
oProvedeni.value = "";
}
}
// Funkce nam nasobi input hodnota s input nasobic

function cena(e)
{
var oDruh = document.getElementById("druh");
var oProvedeni = document.getElementById("provedeni");
var oVysledek = document.getElementById("vysledek");

if(oDruh.value != "")
oVysledek.value = parseInt(oDruh.value - oProvedeni.value);
else
oVysledek.value = 0;
}
function zacatek(e)
{
var oDruh = document.getElementById("druh");
var oVysledek = document.getElementById("vysledek");

if(oDruh.value = "")
oVysledek.value = parseInt(0);
else
oVysledek.value = 0;
}

</script>
</head>
<body>
<form action="#" method="post">
<select name="vyberd" onChange="VyberDruh(this.options)">
<option value="0" onClick="zacatek(this);" selected>Vyber nápoj</option>
<option value="1000" onClick="cena(this);">káva</option>
<option value="2000" onClick="cena(this);">čaj</option>
<option value="3000" onClick="cena(this);">mléko</option>
</select>
<select name="vyberp" onChange="VyberProvedeni(this.options)">
<option value="0" onClick="cena(this);" selected>vyber obal</option>
<option value="150" onClick="cena(this);">v plechovce</option>
<option value="200" onClick="cena(this);">v krabici</option>
<option value="300" onClick="cena(this);">v sáčku</option>
</select> <br>
nápoj <input readonly type="text" id="druh" name="druh"><br>
<strong>-</strong>
obal
<input readonly type=text id="provedeni" name="provedeni"><br>
výsledek <input readonly type=text id="vysledek" name="vysledek" value="0">
</form>
</body>
</html>



Už to dělá to co jsem chtěl ale jen ve firefoxu. Může mi někdo pomoci opravid kod aby fungoval i v IE? A také bych ještě nějak chtěl udělat to aby select name="vyberp" bylo možné vybrat až potom co je vybraná jedna z možností select name="vyberd".

Snad mi s tím někdo pomůže.

Nahlásit jako SPAM
IP: 77.93.205.–
soudruh0
Newbie
26. 10. 2008   #7
-
0
-

To adosl : Tu možnost vybrat až potom můžeš udělat tím že tomu prvku nastavíš readonly a pak při výběru prvního mu to odblokuješ pomocí JS jinak zoptimalizovat to pro IE nemohu, protože jedu na Linuu, snad někdo jiný

Nahlásit jako SPAM
IP: 82.100.63.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Dny mezi dvema daty — založil kejta

Rozdíl mezi dvěma zápisy — založil Tomáš

Proměná, mezi dvěma událostmi — založil Petr Sýkora

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý