» »

Popoln začetnik JavaScripta in programiranja nasploh: seštevanje in izpis

Popoln začetnik JavaScripta in programiranja nasploh: seštevanje in izpis

VelikiZnoj ::

Živjo.

Kot popoln začetnik JavaScripta imam en majhen problem pri seštevanju. Do zdaj imam napisano to kodo, ki sešteje posamične vnose za različna podjetja, zdaj bi moral pa za funkcijo izpis() izračunat še vse vnose za vsako podjetje posebej.

Pri vnosu npr. pri podjetju 1 dam 10EUR, 40EUR, 50EUR in 100EUR, pri podjetju 2 pa recimo 50EUR, 100EUR, 200EUR, 20EUR potem pa pri obeh vse vnose seštet in jih vpisat pod paragraph Sumarni prikaz po firmah.

Problem mi je logika glede na kodo... ne vem, kako se sploh lotit, da bi dobil nek rezultat. Vem, da je bolj izkušenim to precej enostavno in da verjetno ni treba ravno veliko kode napisat, da se zadevo spelje do konca.

Sem vesel kakršnekoli pomoči v povezavi z nalogo! Hvala!

<!DOCTYPE html>
<html>
    
        <head>
        <meta charset="utf-8"> 
        <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
        <title>Spletna stran</title>
       </head>
    
    <body>
    <h1>Vnos in prikaz dnevnih zaslužkov</h1>
         
        <input id = "vpis" type="number">
        
        <select id="izbira">
           <option value="podjetjeEna">Podjetje1</option>
	       <option value="podjetjeDve">Podjetje2</option>
	       <option value="podjetjeTri">Podjetje3</option>
           <option value="podjetjeStiri">Podjetje4</option>
        </select>
        
        <button type="button" onclick="vnos()">Vnos</button>
        <br>
        <button type="button" onclick="izpis()">Izpis seštevkov</button>
		<br>
		<h2>Podjetja</h2>
		
		<p>Podjetje1</p>
		<p id="pEna"></p>
    	<p>Podjetje2</p>
    	<p id="pDve"></p>
		<p>Podjetje3</p> 
		<p id="pTri"></p>
    	<p>Podjetje4</p> 
		<p id="pStiri"></p>

		
        ------------------------------
		<br>
		<p>Sumarni prikaz po firmah</p>
		<p>Podjetje1</p>
		<p id="skupajEna"></p>
		<p>Podjetje2</p>
		<p id="skupajDve"></p>
		<p>Podjetje3</p>
		<p id="skupajTri"></p>
		<p>Podjetje4</p>
		<p id="skupajStiri"></p>
		<br>
		------------------------------
		<br>
		<p>Skupaj</p>
		<p id="skupaj"></p>
		
        
        
        <script>
 
			var skupaj=0;
			var tabelaZneskov=[];
			
		
        
        function vnos() {
			var v_podjetje;
			v_podjetje = document.getElementById("izbira").value;
			var znesek=0;
			znesek = parseFloat(document.getElementById("vpis").value);
					
			if (v_podjetje == "podjetjeEna") {
				document.getElementById("pEna").innerHTML += znesek + "EUR, ";
				skupaj += znesek;
			}
			else if (v_podjetje == "podjetjeDve") {
				document.getElementById("pDve").innerHTML += znesek + "EUR, ";
				skupaj += znesek;
			}
			else if (v_podjetje == "podjetjeTri") {
				document.getElementById("pTri").innerHTML += znesek + "EUR, ";
				skupaj += znesek;
			}
			else if (v_podjetje == "podjetjeStiri")
			{
				document.getElementById("pStiri").innerHTML += znesek + "EUR, ";
				skupaj += znesek;
			}
			else {}
			
			document.getElementById("skupaj").innerHTML = skupaj + "EUR";
			tabelaZneskov.push(znesek);
		}
			
		function izpis() {
			
		
			
			
		}
	

        </script>
    </body>
</html>

ejresnevem ::

ja, naredi si tabelo pa funkcijo, da poišče podjetjeId in doda znesku, imaš, kot je verjetno namen vaje, precej penostavljeno memorijsko podatkovno bazo,
initDb() { db = [[podjetjeId, znesek], ["podjetjeDve", 0]... }
addAmount(id,amount) { for(var i in db) if (db[i][0]==id) { db[i][1]+=amount; break; } }
itd..

Unknownm ::

Nekaj takega morda, torej:
Prvo se sprehodiš po vseh izbranem elementu, kjer imaš zabeležene zneske, torej 'pEna', 'pDva',... Vrednost splitaš po 'EUR,' in dobiš seznam zneskov. Potem jih z forEach loopom sešteješ in znesek dodaš v element, kjer želiš rezultat. Na gumb, kjer želiš dodati funkcijo za izpis, pa namesto 'onclick' raje dodaj id="izpisSestevkov", event handler pa imaš že spisan v kodi.

function izpis(entryElement, exitElement) {
  let sum = 0;
  document.getElementById(entryElement).innerHTML.split('EUR,').forEach(el => {
    sum += parseInt(el);
  })
  document.getElementById(exitElement).innerHTML = sum;
}

function a(entry) {
  switch entry {
    case 'podjetjeEna':
      return 'skupajEna';
    case 'podjetjeDva':
      return 'skupajDva';
    case 'podjetjeTri':
      return 'skupajTri';
    case 'podjetjeStiri':
      return 'skupajStiri';
  }
}

document.getElementById('izpisSestevkov').addEventHandler('click', () => {
  izpis(document.getElementById('izbira').value, a(document.getElementById('izbira').value))
})

Zgodovina sprememb…

  • spremenilo: Unknownm ()

VelikiZnoj ::

Hvala za pomoč - mi še vedno ni čisto jasno, ampak bom še predelal vse skupaj in upam, da mi rata. :)

Unknownm ::

Mogoče pridejo spodnje povezave prav:
Event listeners
For each
Split function


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

AJAX kratke naloge

Oddelek: Izdelava spletišč
192281 (1748) Yacked2
»

Ajax readyState == 3 ne deluje?

Oddelek: Izdelava spletišč
9740 (663) Housy
»

JavaScript offsetTop in brskalniki

Oddelek: Izdelava spletišč
8992 (924) shorvat
»

Javascript - izračun razlike v datumih

Oddelek: Programiranje
81910 (1765) kogledom
»

Internet strani kot slideshow

Oddelek: Izdelava spletišč
212110 (1861) sverde21

Več podobnih tem