Spočítání dvou polí – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Spočítání dvou polí – JavaScript, AJAX, jQuery – Fórum – Programujte.comSpočítání dvou polí – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

cheeester0
Stálý člen
20. 6. 2008   #1
-
0
-

Hoj,

chci se zeptat zda jde nějak jednoduše udělat:



<select name=ovoce>
<option value=100>Jablka</option>
<option value=80>Hrusky</option>
<option value=50>Tresne</option>
</select>

<input type=text name=hodnota>
<input type=text name=nasobic>
<input type=text name=vysledek>

aby kdyz clovek zvoli hodnotu v selectu treba (jablka) aby se do pole input hodnota doplnila castk za jablka (value=100) a jakmile clovek dopise do nasobice pocet aby se hodnota znasobila do input vysledek.

Priklad: Zvolim jablka za 100 a nasobim 3 vyseldek 300

Děkuji všem moc by mě to pomohlo

Nahlásit jako SPAM
IP: 88.146.167.–
Ruda
~ Anonymní uživatel
65 příspěvků
20. 6. 2008   #2
-
0
-

Ahoj, tady posilam malej priklad bylo to psane velmi narychlo.Urcite se to da jeste nejak optimalizovat.. Kbydy jsi neco nechapal tak napis a vice to vysvetlim..



<!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 VyberHodnoty(selected)
{
var oHodnota = document.getElementById("hodnota");
var oNasobic = document.getElementById("nasobic");

var sOvoce=parseInt(selected[selected.selectedIndex].value);
if(sOvoce != 0)
{
oHodnota.value = sOvoce;
this.Nasobic(oNasobic);
}
else
{
oHodnota.value = "";
}
}

// Funkce nam nasobi input hodnota s input nasobic
function Nasobic(e)
{
var oHodnota = document.getElementById("hodnota");
var oVysledek = document.getElementById("vysledek");
if(oHodnota != "")
oVysledek.value = parseInt(oHodnota.value * e.value);
else
oVysledek.value = 0;
}

</script>
</head>
<body>
<form action="#" method="post">
<select name=ovoce onChange="VyberHodnoty(this.options)">
<option value="0" selected>Vyber</option>
<option value="100">Jablka</option>
<option value="80">Hrusky</option>
<option value="50">Tresne</option>
</select>

<input type=text id="hodnota" name="hodnota">
<input type=text id="nasobic" name="nasobic" onkeyup="Nasobic(this);" value="0">
<input type=text id="vysledek" name="vysledek" value="0">

</form>
</body>
</html>

Nahlásit jako SPAM
IP: 213.195.228.–
kaktus0
Newbie
20. 6. 2008   #3
-
0
-

<select name=ovoce onchange="hodnota.value=this.options[this.selectedIndex].value">

<option value="0" selected>Vyber</option>
<option value=100>Jablka</option>
<option value=80>Hrusky</option>
<option value=50>Tresne</option>
</select>

<input type=text name=hodnota>
<input type=text name=nasobic onkeyup=vysledek.value=hodnota.value*this.value>
<input type=text name=vysledek>

Při zmene selectu "ovoce" se do inputu "hodnota" vlozi value vybraneho ovoce. Pri stisku tlacitka se vynásobí hodnota a nasobic, vysledek se vlozi do inputu "vysledek"

Nahlásit jako SPAM
IP: 78.102.44.–
cheeester0
Stálý člen
20. 6. 2008   #4
-
0
-

Děkujiiiii! Je to skvělé a vážně přehledně a pochopitelně napsané! Moc mi to pomohlo!

Nahlásit jako SPAM
IP: 88.146.167.–
cheeester0
Stálý člen
23. 6. 2008   #5
-
0
-

ještě mám otázečku??? Dalo by se nějak udělat abych tím selectem zaroveň mohl identicikovat jaké ovoce bylo vybrané? Ted mi to predava cenu ke spocitani ale uz se nedozvím pro dalsi zpracovani dat jaké ovoce bylo zvolene. Nebranil bych se ani tomu ze select bude nacitan z DB a tedy value v option bude id zaznamu v DB a ze by se do pole hodnota nacetla cena z DB dle id ihned po zvoleni ovoce v selectu.

Nahlásit jako SPAM
IP: 88.146.167.–
cheeester0
Stálý člen
24. 6. 2008   #6
-
0
-

nevíte někdo jak nato? Prostě teď mi select předává cenu v hodnote value ale potrebuji abych nejak dostal co za ovoce bylo zvoleno a zaroven se doplnila ta cena.

Nahlásit jako SPAM
IP: 88.146.167.–
Smokie0
Expert
24. 6. 2008   #7
-
0
-

To cheeester : Ved ked ti cenu vyberaz DB podla ID, tak nech ti vyberie aj nazov ovocia. Kde je problem?

Nahlásit jako SPAM
IP: 88.212.23.–
curo0
Newbie
24. 6. 2008   #8
-
0
-

Tak si tam zadej value="jmeno;cena" a pak to pomocí js rozděl na dvě proměnné

Nahlásit jako SPAM
IP: 82.100.63.–
cheeester0
Stálý člen
24. 6. 2008   #9
-
0
-

no to muze byt ale nevim jak se to reozdeli. V php by to problem nebyl ale javascrip nedavam. Je to ale dosti dobra myšlenka

Nahlásit jako SPAM
IP: 88.146.167.–
24. 6. 2008   #10
-
0
-

Ja v techto pripadech vetsinou pouzivam ne uplne cistou, ale efektni a efektivni metodu: Pridam tomu OPTIONu nejaky dalsi parametr - muzes si ho pojmenovat jak chces - a jeho hodnotu pak ziskavam pomoci funkce getAttribute. Upornuju, ze takovy dokument pak nejspis neprojde W3C validaci.

Dalsi moznost je pres DOM - budes si cyklicky prochazet jednotlive OPTIONy toho selectu a budes porovnavat jejich value se ziskanou value. A ve chvili, kdy narazis na node s danou value, tak akorat ziskas jeho obsah.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
curo0
Newbie
24. 6. 2008   #11
-
0
-

var a='100;Jablka';

var b=a.split(';');
var c=b[1];

Nahlásit jako SPAM
IP: 82.100.63.–
cheeester0
Stálý člen
24. 6. 2008   #12
-
0
-

nevim co delam spatne ale pri zapojeni do scriptu #2 mi prestane fungovat cely

Nahlásit jako SPAM
IP: 88.146.167.–
curo0
Newbie
25. 6. 2008   #13
-
0
-

Takže pokud použiji

<option value="100-Jablka">Jablka</option>

Tak ten script s podivem funguje (bez zásahu do js)... Jinak nepovedlo se mi přijít na důvod proč to s přidáním toho kodu nejde...

Nahlásit jako SPAM
IP: 82.100.63.–
cheeester0
Stálý člen
25. 6. 2008   #14
-
0
-

script funguje ale nejde mi jej spojit s tímto. To mi pak nejede.

<!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 VyberHodnoty(selected)

{

var oHodnota = document.getElementById("hodnota");

var oNasobic = document.getElementById("nasobic");



var sOvoce=parseInt(selected[selected.selectedIndex].value);

if(sOvoce != 0)

{

oHodnota.value = sOvoce;

this.Nasobic(oNasobic);

}

else

{

oHodnota.value = "";

}

}



// Funkce nam nasobi input hodnota s input nasobic

function Nasobic(e)

{

var oHodnota = document.getElementById("hodnota");

var oVysledek = document.getElementById("vysledek");

if(oHodnota != "")

oVysledek.value = parseInt(oHodnota.value * e.value);

else

oVysledek.value = 0;

}



</script>

</head>

<body>

<form action="#" method="post">

<select name=ovoce onChange="VyberHodnoty(this.options)">

<option value="0" selected>Vyber</option>

<option value="100">Jablka</option>

<option value="80">Hrusky</option>

<option value="50">Tresne</option>

</select>




<input type=text id="hodnota" name="hodnota">


<input type=text id="nasobic" name="nasobic" onkeyup="Nasobic(this);" value="0">


<input type=text id="vysledek" name="vysledek" value="0">




</form>

</body>

</html>


Nahlásit jako SPAM
IP: 88.146.167.–
curo0
Newbie
25. 6. 2008   #15
-
0
-

Takhle to funguje a máš tam i název toho inputu...

<!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 VyberHodnoty(selected)
{
var oHodnota = document.getElementById("hodnota");
var oNasobic = document.getElementById("nasobic");
var sOvoce= parseInt(selected[selected.selectedIndex].value);
if(sOvoce != 0)
{
oHodnota.value = sOvoce;
this.Nasobic(oNasobic);
}
else
{
oHodnota.value = "";
}
}

// Funkce nam nasobi input hodnota s input nasobic

function Nasobic(e)
{
var oHodnota = document.getElementById("hodnota");
var oVysledek = document.getElementById("vysledek");

if(oHodnota != "")
oVysledek.value = parseInt(oHodnota.value * e.value);
else
oVysledek.value = 0;
}

</script>
</head>
<body>
<form action="#" method="post">
<select name=ovoce onChange="VyberHodnoty(this.options)">
<option value="0-Nic" selected>Vyber</option>
<option value="100-Jablka">Jablka</option>
<option value="80-Hrusky">Hrusky</option>
<option value="50-Tresne">Tresne</option>
</select>

<input type=text id="hodnota" name="hodnota">
<input type=text id="nasobic" name="nasobic" onKeyUp="Nasobic(this);" value="0">
<input type=text id="vysledek" name="vysledek" value="0">
</form>
</body>
</html>

Může to vypadat jako prasárna, mne se to tak i zdá, ale konzole chyb v FF3 nic nehlásí... funguje to v FF3 i IE...

Nahlásit jako SPAM
IP: 82.100.63.–
cheeester0
Stálý člen
25. 6. 2008   #16
-
0
-

Funguje :) ale nevidím kde ten script od sebe oděluje? :) Jinak fakt diiky

Nahlásit jako SPAM
IP: 88.146.167.–
curo0
Newbie
26. 6. 2008   #17
-
0
-

Psal jsem že to takhle funguje a že se to ani nemusí odděluovat, proto jsem také psal že se mi to moc nelíbí, ale konzole chyb v FF3 nic nehlásí a funguje to....
Jinak pokud to budeš používat v e-shopu, tak není dobré odesílat cenu. Tohle by mohlo sloužit jen pro zákazníka a pro uložení objednávky si ulož jen ID produktů. Jinak by to mohlo dopadnout jako s premiérama na pctuning.cz http://www.soom.cz/index.php?name=bugtrack/show&thread_id=895

Nahlásit jako SPAM
IP: 82.100.63.–
cheeester0
Stálý člen
26. 6. 2008   #18
-
0
-

Ono to stejně input hodnota a vysledek neodesila. Takže to musím pak počítat na serveru v PHP což je trošku přidaná práce. Ale co hlavně že to zákazníkovy sdělí co chce vědět.

Nahlásit jako SPAM
IP: 88.146.167.–
cheeester0
Stálý člen
26. 6. 2008   #19
-
0
-

jen se chci zeptat zda by nebylo lepší vybraný select načíst do pole hodnota z databáze? Při výberu option se nacte do pole hodnota cena ovoce dle jeho id z databáze.

Nahlásit jako SPAM
IP: 88.146.167.–
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, 1 host

Podobná vlákna

Srovnání dvou polí — založil KARLOSCZ1979

Porovnani dvou poli — založil lol

Sčítání dvou polí — založil ondrej77

 

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