Diskuze: Formulářové zpracování

JavaScript JavaScript Formulářové zpracování

Avatar
jakub.matousek23:

Zdravím ,
potýkám se s problémem který se snažím vyřešit už nějakou dobu.Problém je v tom , že nedokážu do formuláře začlenit výpočet pro vybrané řazení rezistorů.Zatím mi program jen vypisuje údaje.

Předem děkuji za každou pomoc

 
Odpovědět 3.5.2014 19:48
Avatar
Odpovídá na jakub.matousek23
jakub.matousek23:

<!DOCTYPE HTML PUBLIC "-W3CDTD XHTML 1.0 Transitional//EN" "http://www.w3­.org/TR/xhtml1/­DTD/xhtml1-transitional.dtd">

<html xmlns="http:/­/www.w3.org/1999/xhtml­">
<head>
<title></title>

<style type="text/css">
.formular {
background-color: #808000;
border-left: solid 5px black;
}
</style>
<script language="javas­cript" type="text/ja­vascript">
function vyhodnotFormular() {
var s = "";
var el = document.getE­lementById("vys­ledek");
var i;
var p;

s += "Report o vyplnenem formulari";
s += "
prvni odpor je: " + document.formu­lar.prvniodpor­.value;
s += "
druhy odpor je: " + document.formu­lar.druhyodpor­.value;
s += "
razeni je: ";

for (i = 0; i < document.formu­lar.razeni.len­gth; ++i) {
if (document.for­mular.razeni[i]­.selected == true) {
switch (document.for­mular.razeni[i]­.value) {
case "S": s += "serie"; break;
case "P": s += "paralel"; break;
default : s += "Neznámý odpor"; break;
}
}
}
el.innerHTML = s;
}
</script>
</head>
<body>
<form name="formular">
<table cellpadding="5" cellspacing="0" class="formular">
<tr>
<td>prvni odpor</td>
<td><input type="text" name="prvniodpor" /></td>
</tr>
<tr>
<td>druhy odpor</td>
<td><input type="text" name="druhyodpor" /></td>
</tr>
<tr>
<td>razeni</td>
<td>
<select name="razeni">
<option value="S">seri­e</option>
<option value="P">para­lel</option>

</select>

</td>
</tr>

</table>
<input type="button" value="Zpracuj data" onclick="vyhod­notFormular()" />
</form>


<div id="vysledek" style="background-color:silver; border:dashed 3px brown">
Po odesláni formulaře sem zapíšu, zatím nic nemám.
</div>
</body>
</html>

 
Nahoru Odpovědět 3.5.2014 20:03
Avatar
Odpovídá na jakub.matousek23
Josef Kuchař (Pepa489):

Existuje tu tlačítko na zdrojový kód

Nahoru Odpovědět 3.5.2014 20:32
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař (Pepa489)
jakub.matousek23:

Velice se omlouvám jsem tu nový... =)

<!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>
    <title></title>

    <style type="text/css">
        .formular {
            background-color: #808000;
            border-left: solid 5px black;
        }
    </style>
    <script language="javascript" type="text/javascript">
        function vyhodnotFormular() {
            var s = "";
            var el = document.getElementById("vysledek");
            var i;
            var p;



            s += "Report o vyplnenem formulari";
            s += "<br/>prvni odpor je: " + document.formular.prvniodpor.value;
            s += "<br/>druhy odpor je: " + document.formular.druhyodpor.value;
            s += "<br/>razeni je: ";




            for (i = 0; i < document.formular.razeni.length; ++i) {
                if (document.formular.razeni[i].selected == true) {
                    switch (document.formular.razeni[i].value) {
                        case "S": s += "serie"; break;
                        case "P": s += "paralel"; break;
                        default : s += "Neznámý odpor"; break;
                    }
                }
            }
            el.innerHTML = s;
        }
    </script>
</head>
<body>
    <form name="formular">
        <table cellpadding="5" cellspacing="0" class="formular">
            <tr>
                <td>prvni odpor</td>
                <td><input type="text" name="prvniodpor" /></td>
            </tr>
            <tr>
                <td>druhy odpor</td>
                <td><input type="text" name="druhyodpor" /></td>
            </tr>
            <tr>
                <td>razeni</td>
                <td>
                    <select name="razeni">
                        <option value="S">serie</option>
                        <option value="P">paralel</option>

                    </select><br />
                </td>
            </tr>

        </table>
        <input type="button" value="Zpracuj data" onclick="vyhodnotFormular()" />
    </form>
    <br />
    <div id="vysledek" style="background-color:silver; border:dashed 3px brown">
        Po odesláni formulaře sem zapíšu, zatím nic nemám.
    </div>
</body>
</html>
 
Nahoru Odpovědět 3.5.2014 20:42
Avatar
Nahoru Odpovědět  +1 3.5.2014 20:55
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař (Pepa489)
jakub.matousek23:

Děkuji určitě máš pravdu.Ale problém je takový že já momentálně na výběr moc nemám , jelikož jsme ve škole ještě php neprobíraly =)

 
Nahoru Odpovědět 3.5.2014 21:10
Avatar
mkub
Redaktor
Avatar
Odpovídá na jakub.matousek23
mkub:

nemusis cakat na skolu, kedy budete preberat to v skole, pokial to je pre tvoju osobnu potrebu, mozes sa poobzerat po nete a naucit sa pracovat aj s PHP ;)

 
Nahoru Odpovědět 4.5.2014 4:49
Avatar
Odpovídá na mkub
jakub.matousek23:

Tak s tím nemůžu nic jen souhlasit.Ale toho času na zpracování úlohy moc není a přece by asi bylo blbé odevzdat úlohu v jiném kódu než má být zpracovaná.Mě by momentálně bohatě stačilo jenom trošku nakopnout abych aspoň věděl jak začít. =) Nevadí i když se tohle nezdaří tak se nic neděje.A nebojte služeb devbooku využívám naplno.Pochopím toho o dost více než ve škole xDD

 
Nahoru Odpovědět 4.5.2014 9:03
Avatar
Gramli
Redaktor
Avatar
Gramli:

Já v javaScriptu nikdy nedelal, ale zkousel sem tohle a funguje:

       for (i = 0; i < document.formular.razeni.length; ++i) {
    if (document.formular.razeni[i].selected == true) {
        switch (document.formular.razeni[i].value) {
            case "S": s += "serie"; var num = document.formular.prvniodpor.value/document.formular.druhyodpor.value;/*tady das vypocet pro serii*/ break;
            case "P": s += "paralel"; var num = document.formular.prvniodpor.value/document.formular.druhyodpor.value;/*tady das vypocet pro paralelni*/ break;
            default : s += "Neznámý odpor"; break;
        }
    }
}
s += num.toString(); /*tady vypises vysledek*/
el.innerHTML = s;

Dej si tam jakoukoliv rovnici a vysledek uloz do promene num, tu pak pred radkem el.innerHTML = s; prevedes do stringu a pridas k promene s :) Doufám, že je to to, co si chtěl :P

Editováno 4.5.2014 9:39
Nahoru Odpovědět  +2 4.5.2014 9:39
Kdo to říká ten to je...
Avatar
Odpovídá na Gramli
jakub.matousek23:

Velice ti děkuji za pomoc =) Já vím zdá se to být primitivní ale já mám ještě dlouhou cestu před sebou xD Ale nevzdávám se =)

 
Nahoru Odpovědět  +1 4.5.2014 9:42
Avatar
Odpovídá na Gramli
jakub.matousek23:

Jo se mnou je to hold těžké aneb dostanu řešení pod nos a ani toho neumím využít xD zkouším to dát do hromady ale nějak se mi to nedaří =(

<!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>
     <title></title>

     <style type="text/css">
         .formular {
             background-color: #808000;
             border-left: solid 5px black;
         }
     </style>
     <script language="javascript" type="text/javascript">
         function vyhodnotFormular() {
             var s = "";
             var el = document.getElementById("vysledek");
             var i;
             var p;
             var x = document.formular.prvniodpor.value;
             var y = document.formular.druhyodpor.value;

             s += "Report o vyplnenem formulari";
             s += "<br/>prvni odpor je: " + document.formular.prvniodpor.value;
             s += "<br/>druhy odpor je: " + document.formular.druhyodpor.value;
             s += "<br/>razeni je: ";
             s += "<br/>vysledna hodnota je: ";



             for (i = 0; i < document.formular.razeni.length; ++i) {
                 if (document.formular.razeni[i].selected == true) {
                     switch (document.formular.razeni[i].value) {
                         case "S": s += "serie"; var num = document.formular.prvniodpor.value / document.formular.druhyodpor.value; num = x + y; break;
                         case "P": s += "paralel"; var num = document.formular.prvniodpor.value / document.formular.druhyodpor.value; num = x * y / x + y;break;
                         default: s += "Neznámý odpor"; break;
                     }
                 }
             }
             s += num.toString();
             x.toString;
             y.toString;
             document.write("vysledna hodnota je:  " + num);
             el.innerHTML = s;
         }
     </script>
 </head>
 <body>
     <form name="formular">
         <table cellpadding="5" cellspacing="0" class="formular">
             <tr>
                 <td>prvni odpor</td>
                 <td><input type="text" name="prvniodpor" /></td>
             </tr>
             <tr>
                 <td>druhy odpor</td>
                 <td><input type="text" name="druhyodpor" /></td>
             </tr>
             <tr>
                 <td>razeni</td>
                 <td>
                     <select name="razeni">
                         <option value="S">serie</option>
                         <option value="P">paralel</option>

                     </select><br />
                 </td>
             </tr>

         </table>
         <input type="button" value="Zpracuj data" onclick="vyhodnotFormular()" />
     </form>
     <br />
     <div id="vysledek" style="background-color:silver; border:dashed 3px brown">
         Po odesláni formulaře sem zapíšu, zatím nic nemám.
     </div>
 </body>
 </html>
 
Nahoru Odpovědět 4.5.2014 10:54
Avatar
Gramli
Redaktor
Avatar
Odpovídá na jakub.matousek23
Gramli:

Ja se jeste naucim zaklady Javascriptu covece :D:D:D

</style>
<script language="javascript" type="text/javascript">
    function vyhodnotFormular() {
        var s = "";
        var el = document.getElementById("vysledek");
        var i;
        var p;
        var x = parseInt(document.formular.prvniodpor.value);
        var y = parseInt(document.formular.druhyodpor.value);
        var st = "";

        s += "Report o vyplnenem formulari";
        s += "<br/>prvni odpor je: " + document.formular.prvniodpor.value;
        s += "<br/>druhy odpor je: " + document.formular.druhyodpor.value;
        s += "<br/>razeni je:";




        for (i = 0; i < document.formular.razeni.length; ++i) {
            if (document.formular.razeni[i].selected == true) {
                switch (document.formular.razeni[i].value) {
                    case "S": s += "serie";  var num = x + y; break;
                    case "P": s += "paralel"; var num = (x * y) / (x + y);break;
                    default: s += "Neznámý odpor"; break;
                }
            }
        }
        s += "<br/>vysledek: ";
        s += num.toString();
        el.innerHTML = s;
    }
</script>
Nahoru Odpovědět  +1 4.5.2014 11:22
Kdo to říká ten to je...
Avatar
Gramli
Redaktor
Avatar
Odpovídá na jakub.matousek23
Gramli:

To proměnou

var st = "";

můžeš smazat, zapoměl jsem.

Nahoru Odpovědět 4.5.2014 11:27
Kdo to říká ten to je...
Avatar
Odpovídá na Gramli
jakub.matousek23:

Strašně ti děkuji já bych nad tím strávil ještě celý týden xD Ostudu sem si udělal pěknou takže teď to ještě doladím a mažu se pořádně doučit základy abych aspoň pořádně pochopil tuto úlohu xD ale sem rád že ses také něco přiučil a profitujeme oba dva =P

 
Nahoru Odpovědět  +1 4.5.2014 11:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.