Vastlopertje html optellend overzicht

Status
Niet open voor verdere reacties.

DjNielsE

Gebruiker
Lid geworden
5 mrt 2021
Berichten
8
Office versie
miDer
Beste forum leden misschien is er iemand die mij iets verder op weg kan helpen,
ik heb een optellend table formulier met prijzen en reparatie mogelijkheden.
hij telt perfect op, echter zou ik naast de tabel de gekozen keuzes in een overzicht willen
dus

Overzicht gekozen

gekozen reparatie prijs
gekozen reparatie prijs
gekozen reparatie prijs
Totaal prijs

Hier onder de code zoals ie nu is.

HTML:
 <script>
<!--



  var input = document.getElementsByTagName("input"); // alle inputvelden verzamelen
 
  function update() {
      var total = 0; // teller resetten
      for (var i = 0; i < input.length; i++) {
        total += input[i].checked ? parseFloat(input[i].getAttribute("value")) : 0; // waarden van aangevinkte checkboxen optellen
      }
      document.getElementById("total").innerHTML = " € " + total.toFixed(2).replace(".", ","); // netjes met komma weergeven
      document.getElementById("total_hidden").value = total.toFixed(2);
			

  };
 
  function init() {
      for (var i = 0; i < input.length; i++) {
        input[i].checked = false;
      }
  }
-->
</script>
</head>
<body>
<table>
<table style="height: 500px;" width="520" border="1" bgcolor="#F0F8FF">
<tr><td width="200"><b>Soort Reparatie</b></td><td width="40"><b>Prijs in €</b></td></tr>
<tr><td><input type="checkbox" id="Scherm|origineel" value="149.99" onclick="update(this);" align="left"> Scherm | Origineel</td><td align="left">149,99</td></tr>
<tr><td><input type="checkbox" id="Scherm|Hoge kwaliteit" value="129.99" onclick="update(this);" onselect="summary" align="left"> Scherm | Hoge kwaliteit</td><td align="left">129,99</td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Batterij</td><td align="left">59,99</td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Oplaadpoort</td><td align="left">59,99</td></tr>
<tr><td><input type="checkbox" id="" value="99.99" onclick="update(this);"  align="left"> Camera voor</td><td align="left">99,99</td></tr>
<tr><td><input type="checkbox" id="" value="119.99" onclick="update(this);" align="left"> Camera achter</td><td align="left">119,99</td></tr>
<tr><td><input type="checkbox" id="" value="199.99" onclick="update(this);" align="left"> Behuizing compleet</td><td align="left">199,99</td></tr>
<tr><td><input type="checkbox" id="" value="79.99" onclick="update(this);"  align="left"> Achterkantglas</td><td align="left">79,99</td></tr>
<tr><td><input type="checkbox" id="" value="54.99" onclick="update(this);"  align="left"> Luidspreker</td><td align="left">54,99</td></tr>
<tr><td><input type="checkbox" id="" value="79.99" onclick="update(this);"  align="left"> Oorspeaker</td><td align="left">79,99</td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Microfoon</td><td align="left">59,99</td></tr>
<tr><td><input type="checkbox" id="" value="69.99" onclick="update(this);"  align="left"> Volumeknoppen</td><td align="left">69,99</td></tr>
<tr><td><input type="checkbox" id="" value="69.99" onclick="update(this);"  align="left"> Aan/uitknop</td><td align="left">69,99</td></tr>
<tr><td><input type="checkbox" id="" value="0.00" onclick="update(this);"   align="left"> Waterschade reiniging</td><td align="left">op aanvraag</td></tr>
<tr><td><input type="checkbox" id="" value="29.99" onclick="update(this);"  align="left"> Software herstellen</td><td align="left">29,99</td></tr>
<tr><td><b>Totaal:</b></td><td id="total">€ 0,00</td></tr>
</table>
<p></p>

<form>
<pre>
<label> Volledige naam* </label> <input type="text" field name="naam"/> <br>											 																												
<label> Adres*		 </label> <input type="text" field name="adres" /> <br>
<label> Postcode*       </label> <input type="text" field name="postcode"/> <label> Plaats*</label> <input type="text" field name="city" /> <br>
<label> Email adres*    </label> <input type="text" field name="email"/> <br>
<label> Telefoon*       </label> <input type="text" field name="phone"/> <br>
<label> Datum & tijd*   </label> <input type="datetime-local" name="datum-en-tijd-lokaal"></br>

<input type="checkbox"/>Ik ga akkoord met de <a href=" ">Algemene voorwaarden</a><br> 
<input id="total_hidden" name="total" type="hidden" value="0" /> <input type="Submit" value="Verzenden" onclick="" />

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


Hoop dat er iemand is die me effe de goeie richting in kan duwen
Alvast bedankt voor het meedenken.

mvg niels e
 
Laatst bewerkt:
Dag Niels,

Hieronder heb ik snel de aanvulling gedaan met jouw manier van coderen.

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script>
var input = document.getElementsByTagName("input") // alle inputvelden verzamelen

function update() {
    var total = 0 // teller resetten
    for (var i = 0; i < input.length; i++) {
      var currentvalue = parseFloat(input[i].getAttribute("value"))
      total += input[i].checked ? currentvalue : 0 // waarden van aangevinkte checkboxen optellen
      if (input[i].checked) document.getElementById("chosen" + i).innerText = currentvalue
    }
    document.getElementById("total").innerHTML = " € " + total.toFixed(2).replace(".", ",") // netjes met komma weergeven
    document.getElementById("total_hidden").value = total.toFixed(2)
}

function init() {
    for (var i = 0; i < input.length; i++) {
      input[i].checked = false
    }
}
</script>
</head>
<body>
<form>
<table style="height: 500px;" width="520" border="1" bgcolor="#F0F8FF">
<tr><td width="200"><b>Soort Reparatie</b></td><td width="40"><b>Prijs in €</b></td></td><td></tr>
<tr><td><input type="checkbox" id="Scherm|origineel" value="149.99" onclick="update(this);" align="left"> Scherm | Origineel</td><td align="left">149,99</td><td id="chosen0"></td></tr>
<tr><td><input type="checkbox" id="Scherm|Hoge kwaliteit" value="129.99" onclick="update(this);" onselect="summary" align="left"> Scherm | Hoge kwaliteit</td><td align="left">129,99</td><td id="chosen1"></td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Batterij</td><td align="left">59,99</td><td id="chosen2"></td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Oplaadpoort</td><td align="left">59,99</td><td id="chosen3"></td></tr>
<tr><td><input type="checkbox" id="" value="99.99" onclick="update(this);"  align="left"> Camera voor</td><td align="left">99,99</td><td id="chosen4"></td></tr>
<tr><td><input type="checkbox" id="" value="119.99" onclick="update(this);" align="left"> Camera achter</td><td align="left">119,99</td><td id="chosen5"></td></tr>
<tr><td><input type="checkbox" id="" value="199.99" onclick="update(this);" align="left"> Behuizing compleet</td><td align="left">199,99</td><td id="chosen6"></td></tr>
<tr><td><input type="checkbox" id="" value="79.99" onclick="update(this);"  align="left"> Achterkantglas</td><td align="left">79,99</td><td id="chosen7"></td></tr>
<tr><td><input type="checkbox" id="" value="54.99" onclick="update(this);"  align="left"> Luidspreker</td><td align="left">54,99</td><td id="chosen8"></td></tr>
<tr><td><input type="checkbox" id="" value="79.99" onclick="update(this);"  align="left"> Oorspeaker</td><td align="left">79,99</td><td id="chosen9"></td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Microfoon</td><td align="left">59,99</td><td id="chosen10"></td></tr>
<tr><td><input type="checkbox" id="" value="69.99" onclick="update(this);"  align="left"> Volumeknoppen</td><td align="left">69,99</td><td id="chosen11"></td></tr>
<tr><td><input type="checkbox" id="" value="69.99" onclick="update(this);"  align="left"> Aan/uitknop</td><td align="left">69,99</td><td id="chosen12"></td></tr>
<tr><td><input type="checkbox" id="" value="0.00" onclick="update(this);"   align="left"> Waterschade reiniging</td><td align="left">op aanvraag</td><td id="chosen13"></td></tr>
<tr><td><input type="checkbox" id="" value="29.99" onclick="update(this);"  align="left"> Software herstellen</td><td align="left">29,99</td><td id="chosen14"></td></tr>
<tr></td><td></td><td><b>Totaal:</b></td><td id="total">€ 0,00</td></tr>
</table>
<p></p>

<pre>
<label> Volledige naam* </label> <input type="text" field name="naam"/><br>
<label> Adres*       </label> <input type="text" field name="adres" /><br>
<label> Postcode*       </label> <input type="text" field name="postcode"/> <label> Plaats*</label> <input type="text" field name="city" /><br>
<label> Email adres*    </label> <input type="text" field name="email"/><br>
<label> Telefoon*       </label> <input type="text" field name="phone"/><br>
<label> Datum & tijd*   </label> <input type="datetime-local" name="datum-en-tijd-lokaal"></br>
<input type="checkbox"/>Ik ga akkoord met de <a href=" ">Algemene voorwaarden</a><br>
<input id="total_hidden" name="total" type="hidden" value="0" /><input type="Submit" value="Verzenden" onclick="" />
</pre>
</form>
</body>
</html>

Jeroen
 
Dag Niels,

Hieronder heb ik snel de aanvulling gedaan met jouw manier van coderen.

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script>
var input = document.getElementsByTagName("input") // alle inputvelden verzamelen

function update() {
    var total = 0 // teller resetten
    for (var i = 0; i < input.length; i++) {
      var currentvalue = parseFloat(input[i].getAttribute("value"))
      total += input[i].checked ? currentvalue : 0 // waarden van aangevinkte checkboxen optellen
      if (input[i].checked) document.getElementById("chosen" + i).innerText = currentvalue
    }
    document.getElementById("total").innerHTML = " € " + total.toFixed(2).replace(".", ",") // netjes met komma weergeven
    document.getElementById("total_hidden").value = total.toFixed(2)
}

function init() {
    for (var i = 0; i < input.length; i++) {
      input[i].checked = false
    }
}
</script>
</head>
<body>
<form>
<table style="height: 500px;" width="520" border="1" bgcolor="#F0F8FF">
<tr><td width="200"><b>Soort Reparatie</b></td><td width="40"><b>Prijs in €</b></td></td><td></tr>
<tr><td><input type="checkbox" id="Scherm|origineel" value="149.99" onclick="update(this);" align="left"> Scherm | Origineel</td><td align="left">149,99</td><td id="chosen0"></td></tr>
<tr><td><input type="checkbox" id="Scherm|Hoge kwaliteit" value="129.99" onclick="update(this);" onselect="summary" align="left"> Scherm | Hoge kwaliteit</td><td align="left">129,99</td><td id="chosen1"></td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Batterij</td><td align="left">59,99</td><td id="chosen2"></td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Oplaadpoort</td><td align="left">59,99</td><td id="chosen3"></td></tr>
<tr><td><input type="checkbox" id="" value="99.99" onclick="update(this);"  align="left"> Camera voor</td><td align="left">99,99</td><td id="chosen4"></td></tr>
<tr><td><input type="checkbox" id="" value="119.99" onclick="update(this);" align="left"> Camera achter</td><td align="left">119,99</td><td id="chosen5"></td></tr>
<tr><td><input type="checkbox" id="" value="199.99" onclick="update(this);" align="left"> Behuizing compleet</td><td align="left">199,99</td><td id="chosen6"></td></tr>
<tr><td><input type="checkbox" id="" value="79.99" onclick="update(this);"  align="left"> Achterkantglas</td><td align="left">79,99</td><td id="chosen7"></td></tr>
<tr><td><input type="checkbox" id="" value="54.99" onclick="update(this);"  align="left"> Luidspreker</td><td align="left">54,99</td><td id="chosen8"></td></tr>
<tr><td><input type="checkbox" id="" value="79.99" onclick="update(this);"  align="left"> Oorspeaker</td><td align="left">79,99</td><td id="chosen9"></td></tr>
<tr><td><input type="checkbox" id="" value="59.99" onclick="update(this);"  align="left"> Microfoon</td><td align="left">59,99</td><td id="chosen10"></td></tr>
<tr><td><input type="checkbox" id="" value="69.99" onclick="update(this);"  align="left"> Volumeknoppen</td><td align="left">69,99</td><td id="chosen11"></td></tr>
<tr><td><input type="checkbox" id="" value="69.99" onclick="update(this);"  align="left"> Aan/uitknop</td><td align="left">69,99</td><td id="chosen12"></td></tr>
<tr><td><input type="checkbox" id="" value="0.00" onclick="update(this);"   align="left"> Waterschade reiniging</td><td align="left">op aanvraag</td><td id="chosen13"></td></tr>
<tr><td><input type="checkbox" id="" value="29.99" onclick="update(this);"  align="left"> Software herstellen</td><td align="left">29,99</td><td id="chosen14"></td></tr>
<tr></td><td></td><td><b>Totaal:</b></td><td id="total">€ 0,00</td></tr>
</table>
<p></p>

<pre>
<label> Volledige naam* </label> <input type="text" field name="naam"/><br>
<label> Adres*       </label> <input type="text" field name="adres" /><br>
<label> Postcode*       </label> <input type="text" field name="postcode"/> <label> Plaats*</label> <input type="text" field name="city" /><br>
<label> Email adres*    </label> <input type="text" field name="email"/><br>
<label> Telefoon*       </label> <input type="text" field name="phone"/><br>
<label> Datum & tijd*   </label> <input type="datetime-local" name="datum-en-tijd-lokaal"></br>
<input type="checkbox"/>Ik ga akkoord met de <a href=" ">Algemene voorwaarden</a><br>
<input id="total_hidden" name="total" type="hidden" value="0" /><input type="Submit" value="Verzenden" onclick="" />
</pre>
</form>
</body>
</html>

Jeroen

Hey jeroen
Als eerste bedankt voor het mee denken.
Maar ik zoek eigenlijk een manier om naast deze table een Bon overzicht te zetten
dus echt los van de table of heb ik nu iets bedacht wat gewoon niet mogelijk is op de manier waarop ik nu bezig ben.

Maar bedoel dus eigenlijk naast de table die er nu staat

Overzicht
aangevraagde reparaties incl text prijs
totaal

maar al een donkerbruin vermoeden dat dit niet gaat op deze manier ;) waardeer het zeer dat je mee denkt thanx.
mvg niels
 
Wat je wilt lijkt op een "mandje" in een webshop waarin je producten kan leggen en verwijderen, dus het is mogelijk ;)

Zoals @JeroenE in de code aangaf is het handig om elk product in de prijslijst een unieke index te geven (bijvoorbeeld id=""chosenX").
Voor het toevoegen in het mandje zou dit niet nodig zijn maar wel voor het verwijderen uit het mandje als je het vinkje weghaalt.
 
Laatst bewerkt:
Hey Niels,

Het is zeker mogelijk op jouw manier.

Ik heb me wel de vrijheid genomen me wat te amuseren, en ik heb me eigenlijk wat laten gaan.
Ik heb wel zuiver gemaakt wat je vroeg en dus geen rekening gehouden met, zoals @bron zei en zoals ik in mijn eerste oplossing deed, een index voor een winkelmandje ofzo.
Dat is er wel eenvoudig bij te zetten.

Sla de volgende code op als html-bestand:

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Prijslijst</title>
<link rel="stylesheet" href="chosenrepair.css">
<script src="chosenrepair.js" defer></script>
</head>
<body>
  <div id="containerdiv" class="containerdiv">
    <form action="" id="prijslijstform" class="prijslijstform">
      <input type="hidden" id="total_hidden">
      <div id="headerdiv" class="headerdiv">
        <div class="reparatiesoortdiv commondiv">Soort Reparatie</div>
        <div class="reparatieprijsdiv commondiv">Prijs in &euro;</div>
      </div>
      <div id="reparatiesdiv" class="reparatiesdiv"></div>
      <div id="footerdiv" class="footerdiv">
        <div class="reparatiesoortdiv commondiv">Totaal:</div>
        <div id="totaldiv" class="reparatieprijsdiv commondiv">&euro; 0,00</div>
      </div>
      <div class="klantdiv">
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="naam">Volledige naam*</label>
          </div>
          <div>
            <input type="text" name="naam" id="naam" placeholder="Volledige naam">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="adres">Adres*</label>
          </div>
          <div>
            <input type="text" name="adres" id="adres" placeholder="Adres">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="postcode">Postcode*</label>
          </div>
          <div>
            <input type="text" name="postcode" id="postcode" placeholder="Postcode">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="city">Plaats*</label>
          </div>
          <div>
            <input type="text" name="city" id="city" placeholder="Plaats">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="phone">Telefoon*</label>
          </div>
          <div>
            <input type="text" name="phone" id="phone" placeholder="Telefoon">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="datum-en-tijd-lokaal">Datum &amp; tijd*</label>
          </div>
          <div>
            <input type="datetime-local" name="datum-en-tijd-lokaal" id="datum-en-tijd-lokaal">
          </div>
        </div>
        <div class="algemenevoorwaardendiv klantcommondiv">
          <input type="checkbox" name="algemenevoorwaarden" id="algemenevoorwaarden">Ik ga akkoord met de <a href="javascript:void(0)">Algemene voorwaarden</a>
        </div>
        <div class="klantbuttondiv klantcommondiv"><button onclick="">Verzenden</button></div>
      </div>
    </form>
    <div id="klantenbondiv" class="klantenbondiv hideklantenbondiv"></div>
  </div>
</body>
</html>

Sla nu deze code op als css-bestand (stylesheet):

Code:
* {
  margin: 0;
  padding: 0;
}

body {
  --background-color: #f0f8ff;
  --border-color: #000;

  min-height: 100vh;
}

input[type=checkbox] {
  margin: 0 5px 0 2px;
}

.containerdiv {
  padding: 10px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.prijslijstform {
  padding: 1px;
  background: var(--background-color);
  border: 1px solid var(--border-color);
}

.commondiv,
.klantenboncommondiv,
.klantcommondiv {
  margin: 1px;
  padding: 2px;
  min-height: 18px;
}
.commondiv {
  border: 1px solid var(--border-color);
}

.headerdiv,
.contentdiv,
.footerdiv {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.headerdiv,
.footerdiv {
  font-weight: bold;
}

.reparatiesoortdiv {
  width: 200px;
}

.reparatieprijsdiv {
  width: 100px;
}

.klantenbondiv {
  margin-left: 20px;
  min-width: 300px;
  border: 1px solid var(--border-color);
}

.hideklantenbondiv {
  opacity: 0;
}

.klantgegevensdiv {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.klantbuttondiv {
  text-align: center;
}

En sla nu als laatste deze code op als js-bestand (javascript):

Code:
const areparaties = [
  {
    omschrijving: "Scherm|Origineel",
    prijs: 149.99
  },
  {
    omschrijving: "Scherm|Hoge kwaliteit",
    prijs: 129.99
  },
  {
    omschrijving: "Batterij",
    prijs: 59.99
  },
  {
    omschrijving: "Oplaadpoort",
    prijs: 59.99
  },
  {
    omschrijving: "Camera voor",
    prijs: 99.99
  },
  {
    omschrijving: "Camera achter",
    prijs: 119.99
  },
  {
    omschrijving: "Behuizing compleet",
    prijs: 199.99
  },
  {
    omschrijving: "Achterkantglas",
    prijs: 79.99
  },
  {
    omschrijving: "Luidspreker",
    prijs: 54.99
  },
  {
    omschrijving: "Oorspeaker",
    prijs: 79.99
  },
  {
    omschrijving: "Microfoon",
    prijs: 59.99
  },
  {
    omschrijving: "Volumeknoppen",
    prijs: 69.99
  },
  {
    omschrijving: "Aan/uitknop",
    prijs: 69.99
  },
  {
    omschrijving: "Waterschade reiniging",
    prijs: "op aanvraag"
  },
  {
    omschrijving: "Software herstellen",
    prijs: 29.99
  }
]

let ndivnum = 0

areparaties.forEach(oreparatie => {
  document.getElementById("reparatiesdiv").innerHTML += "<div class='contentdiv'><div class='reparatiesoortdiv commondiv'><input type='checkbox' id='reparatieinp" + ndivnum + "' value='" + (isNaN(oreparatie.prijs) ? 0 : oreparatie.prijs) + "' onclick='fupdate(" + oreparatie.prijs + ", " + ndivnum + ")'>" + oreparatie.omschrijving + "</div><div class='reparatieprijsdiv commondiv'>" + (isNaN(oreparatie.prijs) ? oreparatie.prijs : parseFloat(oreparatie.prijs).toFixed(2).replace(".", ",")) + "</div></div>"
  ndivnum++
})

let ainput = document.getElementsByTagName("input") // alle inputvelden verzamelen

function fupdate(nprijs, nnum) {
  let ntotal = 0 // teller resetten
  let bmineenreparatie = false // minstens 1 reparatie op onwaar zetten

  const oklantenbondiv = document.getElementById("klantenbondiv") // klantenbon in variabele plaatsen voor later korter coderen een eenvoudiger opnieuw gebruiken
  oklantenbondiv.classList.add("hideklantenbondiv") // klantenbon verbergen

  let sklantenbon = "<div class='headerdiv'><div class='reparatiesoortdiv commondiv'>Soort Reparatie</div><div class='reparatieprijsdiv commondiv'>Prijs</div></div>" // klantenbon 
hoofding aanmaken

  for (let ni = 0; ni < ainput.length; ni++) {
    breparatiegekozen = ainput[ni].checked // reparatie gekozen in variabele plaatsen voor later korter coderen een eenvoudiger opnieuw gebruiken
    nreparatieprijs = parseFloat(ainput[ni].value)
    ntotal += breparatiegekozen ? nreparatieprijs : 0 // waarden van aangevinkte checkboxen optellen

    if (breparatiegekozen) {
      bmineenreparatie = true // minstens 1 reparatie gekozen op waar zetten
      sklantenbon += "<div class='contentdiv'><div class='reparatiesoortdiv commondiv'>" + areparaties[ni-1].omschrijving + "</div><div class='reparatieprijsdiv commondiv'>&euro; " + nreparatieprijs.toFixed(2).replace(".", ",") + "</div></div>" // klantenbon aanvullen met de gekozen reparatie
      // blijkbaar loopt er iets mis met de loop en verhoogt deze ni iets te vroeg en moet ik hierboven dus ni met 1 verminderen om de juiste reparatie weer te geven
    }
  }

  document.getElementById("totaldiv").innerHTML = "&euro; " + ntotal.toFixed(2).replace(".", ",") // netjes met komma weergeven
  document.getElementById("total_hidden").value = ntotal.toFixed(2)

  sklantenbon += "<div class='footerdiv'><div class='reparatiesoortdiv commondiv'>Totaal:</div><div class='reparatieprijsdiv commondiv'>&euro;" + ntotal.toFixed(2).replace(".", ",") + "</div></div>" // klantenbon totaal in voetnoot toevoegen

  oklantenbondiv.innerHTML = sklantenbon // klantenbon weergeven

  if (bmineenreparatie) oklantenbondiv.classList.remove("hideklantenbondiv") // klantenbon weergeven als minstens 1 reparatie gekozen op waar staat
}

function finit() {
  for (var ni = 0; ni < ainput.length; ni++) {
    ainput[ni].checked = false
  }
}



Je zal zien dat ik voor elke functie of variabele die ik declareer een letter zet (gewoon de eerste letter van de gebruikte soort):

f voor function
b voor boolean
s voor string
n voor number
a voor array
o voor object

Mijn code is ook zeker nog niet optimaal, want ik ben ook nog constant aan het bijleren

Mochten er meer ervaren mensen zijn die iets aan mijn code kunnen verbeteren, doe het gerust en leg misschien ook uit wat een waarom je het veranderd hebt.

Jeroen


mod. voor syntax highlighter heb ik & veranderd in &amp;

@bron JS tags vervangen door CODE tags ;)
 
Laatst bewerkt:
Jeroen, ziet er erg goed uit.

Helaas maakt de [JS] tag in een bericht op dit forum een heel erg lange
zonder scrollbar. Ik hoop dat dit in de volgende forum upgrade is verholpen :) Wil je voor Javascript graag de
Code:
 tag gebruiken?[/noparse] Bij html en php kan je wel de bijbehorende tags gebruiken.
 
Jeroen, ziet er erg goed uit.

Helaas maakt de [JS] tag in een bericht op dit forum een heel erg lange
zonder scrollbar. Ik hoop dat dit in de volgende forum upgrade is verholpen :) Wil je voor Javascript graag de
Code:
 tag gebruiken?[/noparse] Bij html en php kan je wel de bijbehorende tags gebruiken.[/QUOTE]

Thnx :)
Ik merkte het net dat die JS nogal onhandig is
Ik heb ondertussen de code geoptimaliseerd, en als ik in mijn vorige bericht de [JS] tag wil aanpassen, dan zie ik dat het onbegonnen werk is om alle tags weg te werken, dus hier de nieuwe code:

De html:

[HTML]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Prijslijst</title>
<link rel="stylesheet" href="chosenrepair.css">
<script src="chosenrepair.js" defer></script>
</head>
<body>
  <div id="containerdiv" class="containerdiv">
    <form action="" id="prijslijstform" class="prijslijstform">
      <input type="hidden" id="total_hidden">
      <div id="headerdiv" class="headerdiv">
        <div class="reparatiesoortdiv commondiv">Soort Reparatie</div>
        <div class="reparatieprijsdiv commondiv">Prijs in &euro;</div>
      </div>
      <div id="reparatiesdiv" class="reparatiesdiv"></div>
      <div id="footerdiv" class="footerdiv">
        <div class="reparatiesoortdiv commondiv">Totaal:</div>
        <div id="totaldiv" class="reparatieprijsdiv commondiv">&euro; 0,00</div>
      </div>
      <div class="klantdiv">
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="naam">Volledige naam*</label>
          </div>
          <div>
            <input type="text" name="naam" id="naam" placeholder="Volledige naam">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="adres">Adres*</label>
          </div>
          <div>
            <input type="text" name="adres" id="adres" placeholder="Adres">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="postcode">Postcode*</label>
          </div>
          <div>
            <input type="text" name="postcode" id="postcode" placeholder="Postcode">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="city">Plaats*</label>
          </div>
          <div>
            <input type="text" name="city" id="city" placeholder="Plaats">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="phone">Telefoon*</label>
          </div>
          <div>
            <input type="text" name="phone" id="phone" placeholder="Telefoon">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="datum-en-tijd-lokaal">Datum &amp; tijd*</label>
          </div>
          <div>
            <input type="datetime-local" name="datum-en-tijd-lokaal" id="datum-en-tijd-lokaal">
          </div>
        </div>
        <div class="algemenevoorwaardendiv klantcommondiv">
          <input type="checkbox" name="algemenevoorwaarden" id="algemenevoorwaarden">Ik ga akkoord met de <a href="javascript:void(0)">Algemene voorwaarden</a>
        </div>
        <div class="klantbuttondiv klantcommondiv"><button onclick="">Verzenden</button></div>
      </div>
    </form>
    <div id="klantenbondiv" class="klantenbondiv hideklantenbondiv">
      <div class="headerdiv">
        <div class="reparatiesoortdiv commondiv">Soort Reparatie</div>
        <div class="reparatieprijsdiv commondiv">Prijs</div>
      </div>
      <div id="klantenboncontentdiv"></div>
      <div class="footerdiv">
        <div class="reparatiesoortdiv commondiv">Totaal:</div>
        <div id="totaalprijsdiv" class="reparatieprijsdiv commondiv">&euro; 0,00</div>
    </div>
    </div>
  </div>
</body>
</html>
[/HTML]

De css:

[CODE]
* {
  margin: 0;
  padding: 0;
}

body {
  --background-color: #f0f8ff;
  --border-color: #000;

  min-height: 100vh;
}

input[type=checkbox] {
  margin: 0 5px 0 2px;
}

.containerdiv {
  padding: 10px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.prijslijstform {
  padding: 1px;
  background: var(--background-color);
  border: 1px solid var(--border-color);
}

.commondiv,
.klantenboncommondiv,
.klantcommondiv {
  margin: 1px;
  padding: 2px;
  min-height: 18px;
}
.commondiv {
  border: 1px solid var(--border-color);
}

.headerdiv,
.contentdiv,
.footerdiv {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.headerdiv,
.footerdiv {
  font-weight: bold;
}

.reparatiesoortdiv {
  width: 200px;
}

.reparatieprijsdiv {
  width: 100px;
}

.klantgegevensdiv {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.klantenbondiv {
  margin-left: 20px;
  min-width: 300px;
  border: 1px solid var(--border-color);
}

.hideklantenbondiv {
  opacity: 0;
}

.klantbuttondiv {
  text-align: center;
}

Het javascript:

Code:
const areparaties = [
  {
    omschrijving: "Scherm|Origineel",
    prijs: 149.99
  },
  {
    omschrijving: "Scherm|Hoge kwaliteit",
    prijs: 129.99
  },
  {
    omschrijving: "Batterij",
    prijs: 59.99
  },
  {
    omschrijving: "Oplaadpoort",
    prijs: 59.99
  },
  {
    omschrijving: "Camera voor",
    prijs: 99.99
  },
  {
    omschrijving: "Camera achter",
    prijs: 119.99
  },
  {
    omschrijving: "Behuizing compleet",
    prijs: 199.99
  },
  {
    omschrijving: "Achterkantglas",
    prijs: 79.99
  },
  {
    omschrijving: "Luidspreker",
    prijs: 54.99
  },
  {
    omschrijving: "Oorspeaker",
    prijs: 79.99
  },
  {
    omschrijving: "Microfoon",
    prijs: 59.99
  },
  {
    omschrijving: "Volumeknoppen",
    prijs: 69.99
  },
  {
    omschrijving: "Aan/uitknop",
    prijs: 69.99
  },
  {
    omschrijving: "Waterschade reiniging",
    prijs: "op aanvraag"
  },
  {
    omschrijving: "Software herstellen",
    prijs: 29.99
  }
]

let ndivnum = 0

areparaties.forEach(oreparatie => {
  document.getElementById("reparatiesdiv").innerHTML += "<div class='contentdiv'><div class='reparatiesoortdiv commondiv'><input type='checkbox' id='reparatieinp" + ndivnum + "' value='" + (isNaN(oreparatie.prijs) ? 0 : oreparatie.prijs) + "' onclick='fupdate(\"" + oreparatie.prijs + "\", " + ndivnum + ")'>" + oreparatie.omschrijving + "</div><div class='reparatieprijsdiv commondiv'>" + (isNaN(oreparatie.prijs) ? oreparatie.prijs : parseFloat(oreparatie.prijs).toFixed(2).replace(".", ",")) + "</div></div>"
  ndivnum++
})

let ainput = document.getElementsByTagName("input") // alle inputvelden verzamelen

function fupdate(nprijs, nnum) {
  let ntotal = 0 // teller resetten
  let bmineenreparatie = false // minstens 1 reparatie op onwaar zetten

  const oklantenbondiv = document.getElementById("klantenbondiv") // klantenbon in variabele plaatsen voor later korter coderen een eenvoudiger opnieuw gebruiken
  oklantenbondiv.classList.add("hideklantenbondiv") // klantenbon verbergen

  const oklantenboncontentdiv = document.getElementById("klantenboncontentdiv")

  let sklantenbon = "" // lege klantenbon maken

  for (let ni = 0; ni < ainput.length; ni++) {
    breparatiegekozen = ainput[ni].checked // reparatie gekozen in variabele plaatsen voor later korter coderen een eenvoudiger opnieuw gebruiken
    nreparatieprijs = parseFloat(ainput[ni].value)
    ntotal += breparatiegekozen ? nreparatieprijs : 0 // waarden van aangevinkte checkboxen optellen

    if (breparatiegekozen) {
      bmineenreparatie = true // minstens 1 reparatie gekozen op waar zetten
      sklantenbon += "<div class='contentdiv'><div class='reparatiesoortdiv commondiv'>" + areparaties[ni-1].omschrijving + "</div><div class='reparatieprijsdiv commondiv'>&euro; " + nreparatieprijs.toFixed(2).replace(".", ",") + "</div></div>" // klantenbon aanvullen met de gekozen reparatie
      // blijkbaar loopt er iets mis met de loop en verhoogt deze ni iets te vroeg en moet ik hierboven dus ni met 1 verminderen om de juiste reparatie weer te geven
    }
  }

  document.getElementById("totaldiv").innerHTML = "&euro; " + ntotal.toFixed(2).replace(".", ",") // netjes met komma weergeven
  document.getElementById("total_hidden").value = ntotal.toFixed(2)

  document.getElementById("totaalprijsdiv").innerHTML = "&euro; " + ntotal.toFixed(2).replace(".", ",") // totaal in klantenbon weergeven

  oklantenboncontentdiv.innerHTML = sklantenbon // gekozen reparaties in klantenbon weergeven

  if (bmineenreparatie) oklantenbondiv.classList.remove("hideklantenbondiv") // klantenbon weergeven als minstens 1 reparatie gekozen op waar staat
}

function finit() {
  for (var ni = 0; ni < ainput.length; ni++) {
    ainput[ni].checked = false
  }
}
mod. covid linkje verwijderd.
 
Laatst bewerkt door een moderator:
Jeroen Jij bent geweldig ! :D :D
hier heb je mij heel erg mee geholpen Thanx dit was precies wat ik zocht ;)
nu alleen nog in de site zien te krijgen :P onder de reparatie modellen.

mvg niels
 
Thnx :)
Ik merkte het net dat die JS nogal onhandig is
Ik heb ondertussen de code geoptimaliseerd, en als ik in mijn vorige bericht de [JS] tag wil aanpassen, dan zie ik dat het onbegonnen werk is om alle tags weg te werken, dus hier de nieuwe code:

De html:

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Prijslijst</title>
<link rel="stylesheet" href="chosenrepair.css">
<script src="chosenrepair.js" defer></script>
</head>
<body>
  <div id="containerdiv" class="containerdiv">
    <form action="" id="prijslijstform" class="prijslijstform">
      <input type="hidden" id="total_hidden">
      <div id="headerdiv" class="headerdiv">
        <div class="reparatiesoortdiv commondiv">Soort Reparatie</div>
        <div class="reparatieprijsdiv commondiv">Prijs in €</div>
      </div>
      <div id="reparatiesdiv" class="reparatiesdiv"></div>
      <div id="footerdiv" class="footerdiv">
        <div class="reparatiesoortdiv commondiv">Totaal:</div>
        <div id="totaldiv" class="reparatieprijsdiv commondiv">€ 0,00</div>
      </div>
      <div class="klantdiv">
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="naam">Volledige naam*</label>
          </div>
          <div>
            <input type="text" name="naam" id="naam" placeholder="Volledige naam">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="adres">Adres*</label>
          </div>
          <div>
            <input type="text" name="adres" id="adres" placeholder="Adres">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="postcode">Postcode*</label>
          </div>
          <div>
            <input type="text" name="postcode" id="postcode" placeholder="Postcode">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="city">Plaats*</label>
          </div>
          <div>
            <input type="text" name="city" id="city" placeholder="Plaats">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="phone">Telefoon*</label>
          </div>
          <div>
            <input type="text" name="phone" id="phone" placeholder="Telefoon">
          </div>
        </div>
        <div class="klantgegevensdiv klantcommondiv">
          <div>
            <label for="datum-en-tijd-lokaal">Datum & tijd*</label>
          </div>
          <div>
            <input type="datetime-local" name="datum-en-tijd-lokaal" id="datum-en-tijd-lokaal">
          </div>
        </div>
        <div class="algemenevoorwaardendiv klantcommondiv">
          <input type="checkbox" name="algemenevoorwaarden" id="algemenevoorwaarden">Ik ga akkoord met de <a href="javascript:void(0)">Algemene voorwaarden</a>
        </div>
        <div class="klantbuttondiv klantcommondiv"><button onclick="">Verzenden</button></div>
      </div>
    </form>
    <div id="klantenbondiv" class="klantenbondiv hideklantenbondiv">
      <div class="headerdiv">
        <div class="reparatiesoortdiv commondiv">Soort Reparatie</div>
        <div class="reparatieprijsdiv commondiv">Prijs</div>
      </div>
      <div id="klantenboncontentdiv"></div>
      <div class="footerdiv">
        <div class="reparatiesoortdiv commondiv">Totaal:</div>
        <div id="totaalprijsdiv" class="reparatieprijsdiv commondiv">€ 0,00</div>
    </div>
    </div>
  </div>
</body>
</html>

De css:

Code:
* {
  margin: 0;
  padding: 0;
}

body {
  --background-color: #f0f8ff;
  --border-color: #000;

  min-height: 100vh;
}

input[type=checkbox] {
  margin: 0 5px 0 2px;
}

.containerdiv {
  padding: 10px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.prijslijstform {
  padding: 1px;
  background: var(--background-color);
  border: 1px solid var(--border-color);
}

.commondiv,
.klantenboncommondiv,
.klantcommondiv {
  margin: 1px;
  padding: 2px;
  min-height: 18px;
}
.commondiv {
  border: 1px solid var(--border-color);
}

.headerdiv,
.contentdiv,
.footerdiv {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.headerdiv,
.footerdiv {
  font-weight: bold;
}

.reparatiesoortdiv {
  width: 200px;
}

.reparatieprijsdiv {
  width: 100px;
}

.klantgegevensdiv {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.klantenbondiv {
  margin-left: 20px;
  min-width: 300px;
  border: 1px solid var(--border-color);
}

.hideklantenbondiv {
  opacity: 0;
}

.klantbuttondiv {
  text-align: center;
}

Het javascript:

Code:
const areparaties = [
  {
    omschrijving: "Scherm|Origineel",
    prijs: 149.99
  },
  {
    omschrijving: "Scherm|Hoge kwaliteit",
    prijs: 129.99
  },
  {
    omschrijving: "Batterij",
    prijs: 59.99
  },
  {
    omschrijving: "Oplaadpoort",
    prijs: 59.99
  },
  {
    omschrijving: "Camera voor",
    prijs: 99.99
  },
  {
    omschrijving: "Camera achter",
    prijs: 119.99
  },
  {
    omschrijving: "Behuizing compleet",
    prijs: 199.99
  },
  {
    omschrijving: "Achterkantglas",
    prijs: 79.99
  },
  {
    omschrijving: "Luidspreker",
    prijs: 54.99
  },
  {
    omschrijving: "Oorspeaker",
    prijs: 79.99
  },
  {
    omschrijving: "Microfoon",
    prijs: 59.99
  },
  {
    omschrijving: "Volumeknoppen",
    prijs: 69.99
  },
  {
    omschrijving: "Aan/uitknop",
    prijs: 69.99
  },
  {
    omschrijving: "Waterschade reiniging",
    prijs: "op aanvraag"
  },
  {
    omschrijving: "Software herstellen",
    prijs: 29.99
  }
]

let ndivnum = 0

areparaties.forEach(oreparatie => {
  document.getElementById("reparatiesdiv").innerHTML += "<div class='contentdiv'><div class='reparatiesoortdiv commondiv'><input type='checkbox' id='reparatieinp" + ndivnum + "' value='" + (isNaN(oreparatie.prijs) ? 0 : oreparatie.prijs) + "' onclick='fupdate(\"" + oreparatie.prijs + "\", " + ndivnum + ")'>" + oreparatie.omschrijving + "</div><div class='reparatieprijsdiv commondiv'>" + (isNaN(oreparatie.prijs) ? oreparatie.prijs : parseFloat(oreparatie.prijs).toFixed(2).replace(".", ",")) + "</div></div>"
  ndivnum++
})

let ainput = document.getElementsByTagName("input") // alle inputvelden verzamelen

function fupdate(nprijs, nnum) {
  let ntotal = 0 // teller resetten
  let bmineenreparatie = false // minstens 1 reparatie op onwaar zetten

  const oklantenbondiv = document.getElementById("klantenbondiv") // klantenbon in variabele plaatsen voor later korter coderen een eenvoudiger opnieuw gebruiken
  oklantenbondiv.classList.add("hideklantenbondiv") // klantenbon verbergen

  const oklantenboncontentdiv = document.getElementById("klantenboncontentdiv")

  let sklantenbon = "" // lege klantenbon maken

  for (let ni = 0; ni < ainput.length; ni++) {
    breparatiegekozen = ainput[ni].checked // reparatie gekozen in variabele plaatsen voor later korter coderen een eenvoudiger opnieuw gebruiken
    nreparatieprijs = parseFloat(ainput[ni].value)
    ntotal += breparatiegekozen ? nreparatieprijs : 0 // waarden van aangevinkte checkboxen optellen

    if (breparatiegekozen) {
      bmineenreparatie = true // minstens 1 reparatie gekozen op waar zetten
      sklantenbon += "<div class='contentdiv'><div class='reparatiesoortdiv commondiv'>" + areparaties[ni-1].omschrijving + "</div><div class='reparatieprijsdiv commondiv'>€ " + nreparatieprijs.toFixed(2).replace(".", ",") + "</div></div>" // klantenbon aanvullen met de gekozen reparatie
      // blijkbaar loopt er iets mis met de loop en verhoogt deze ni iets te vroeg en moet ik hierboven dus ni met 1 verminderen om de juiste reparatie weer te geven
    }
  }

  document.getElementById("totaldiv").innerHTML = "€ " + ntotal.toFixed(2).replace(".", ",") // netjes met komma weergeven
  document.getElementById("total_hidden").value = ntotal.toFixed(2)

  document.getElementById("totaalprijsdiv").innerHTML = "€ " + ntotal.toFixed(2).replace(".", ",") // totaal in klantenbon weergeven

  oklantenboncontentdiv.innerHTML = sklantenbon // gekozen reparaties in klantenbon weergeven

  if (bmineenreparatie) oklantenbondiv.classList.remove("hideklantenbondiv") // klantenbon weergeven als minstens 1 reparatie gekozen op waar staat
}

function finit() {
  for (var ni = 0; ni < ainput.length; ni++) {
    ainput[ni].checked = false
  }
}

in 1 woord: :P = BAM!
Big thanx werkt perfect zo wou ik dat hebben.
nu maar bij 1 model toegevoegd werkt top morgen beginnen aan de 256 andere modellen.
Nogmaals hartelijk dank jeroen stay safe ! :thumb:
Btw hoe zet ik een vraag op opgelost ?
Gevonden ;)
mvg niels
 
Laatst bewerkt door een moderator:
Met veel plezier gedaan.
een meer dan welkome afwisseling :thumb:

succes en aarzel niet om meer vragen te stellen als je geen oplossing voor iets vindt he :)
 
Met veel plezier gedaan.
een meer dan welkome afwisseling :thumb:

succes en aarzel niet om meer vragen te stellen als je geen oplossing voor iets vindt he :)

Hallo jeroen ik heb geprobeerd om op jou manier het te vermaken maar loop weer vast.
ik heb een formulier in 2 pagina,s willen verdelen hier onder mijn voorbeelden van de pagina,s
pagina 1 is eigenlijk wat onder de modellen komt te staan dus dat staat op 256+ pagina,s maar dan op prijs enz aangepast.
pagina 2 is de nieuwe afspraak pagina waar alle ingevulde info van pagina 1 weer in terug moet komen. Als je de pagina,s los van elkaar bekijkt zul je zien wat de bedoeling is ;)

HTML:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous"></script>
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
    <title>Cart1</title>
    <style>
        body{
            font-family: 'Poppins', sans-serif;
        }
        @media (min-width: 1200px) {
            .container{
                max-width: 970px;
            }
            
        }
        .row-title{
            padding-top: 15px;;
        }
        .row-title h3{
            font-size: 22px;
        }
        .row-inner{
            padding: 15px;
        }
        .row-inner-title h4{
        font-size: 16px;}
        .card{
            margin: 15px 0;
            border: 1px solid #F0F0F0!important;
            border-radius: 3px!important;
        }
        .card-header{
            height: 44px;
            border-bottom: 1px solid #F9F9F9;
            padding-top: 0;
            padding-bottom: 0;
            display: flex;
            align-items: center;
        }
        .row-list .card .card-header .btn{
            padding: 0;
            color: black;
            border: none;
            font-size: 14px;
        }
        .btn:hover{
            text-decoration: none;
            
        }
        .btn:focus{
              text-decoration: none;
              outline: none;
              box-shadow: none;
        }
        .card-body{
            padding: 0;
        }
        .list-group-item{
          border: none;
        }
        .list-group-item:nth-child(2n+1) {
          background: #F9F9F9;
        }
        .list-group .list-group-item h6{
            font-size: 12px;
        }
        .light-grey-text{
            color: #707070;
            font-size: 11px;
        }
        .btn-row{
            margin-top: 30px;
        }
        .next-page-btn{
            background-color: #1AA0DE;
            padding: 12px 30px;
            color: white;
            border-radius: 6px;
        }
        .next-page-btn:hover{
            text-decoration: none;
            color: white;
        }


    </style>
</head>
<body>
    <div class="container" style="margin-top: 20px;">
        <div class="row shadow-sm bg-white rounded">
            <div class="col-md-7">
                <div class="row-title">
                    <h3>Reparatie informatie</h3>
                    <p class="light-grey-text">Vul de onderstaande velden in.</p>
                </div>
                <div class="row-inner">
                    <div class="row-inner-title">
                        <h4>iPhone 11 Reparatie lijst </h4>
                        <p class="light-grey-text">We kunnen ook uw iPhone 11 repareren binnen de garantie</p>
                    </div>
                    <div class="row-list">
                        <div class="accordion" id="accordionExample">
                            <div class="card">
                                <div class="card-header bg-white" id="headingOne">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">Scherm en Glas</button>
                                    </h5>
                                </div>
                                <div id="collapseOne" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Screen | High Quality</h6>
                                                        <p class="light-grey-text">Dit scherm is niet het originele scherm, maar doet voor de kwaliteit niet onder aan het origineel.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€129,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Screen | Origineel</h6>
                                                        <p class="light-grey-text">Dit is het originele scherm vanuit de fabriek van Apple.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€149,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                           
																					  <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Achterkantglas</h6>
                                                        <p class="light-grey-text">Is het glas van de achterkant van je telefoon kapot? kies dan voor deze optie.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€79,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
																					 
                                        </ul>
                                    </div>
                                </div>
                            </div>
                            <div class="card">
                                <div class="card-header bg-white" id="headingTwo">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">Batterij en opladen</button>
                                    </h5>
                                </div>
                                <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Baterij</h6>
                                                        <p class="light-grey-text">Valt uw telefoon uit op de raarste momenten? dan is uw baterij aan vervanging toe.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€59,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Oplaadpoort</h6>
                                                        <p class="light-grey-text">Reageerd uw telefoon niet meer als u hem wilt opladen, dan is misschien uw oplaadpoort defect. Wij van ...... kunnen dit probleem voor u oplossen.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€59,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>                                           
                                        </ul>
                                    </div>
                                </div>
                            </div>
														
														<div class="card">
                                <div class="card-header bg-white" id="headingthree">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapsethree" aria-expanded="true" aria-controls="collapsethree">Speakers & Microfoon</button>
                                    </h5>
                                </div>
                                <div id="collapsethree" class="collapse" aria-labelledby="headingthree" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Luidspreker </h6>
                                                        <p class="light-grey-text">Werkt u luidspreaker niet meer waardoor u niet meer handsfree kan bellen? Wellicht is deze aan vervanging toe </p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€54,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Oorspeaker</h6>
                                                        <p class="light-grey-text">Hapert degene soms die u belt of kraakt het ernstig? dan is waarschijnlijk uw oorspeaker kapot. </p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€79,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>                                            
                                        </ul>
                                    </div>
                                </div>
                            </div>
														
														<div class="card">
                                <div class="card-header bg-white" id="headingfour">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapsefour" aria-expanded="true" aria-controls="collapsefour">Camera's</button>
                                    </h5>
                                </div>
                                <div id="collapsefour" class="collapse" aria-labelledby="headingfour" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Camera voor </h6>
                                                        <p class="light-grey-text">Werkt u camera aan de voorkant niet? Wellicht is deze aan vervanging toe </p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€99,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Camera achter</h6>
                                                        <p class="light-grey-text">Werkt u camera aan de achterkant niet? Wellicht is deze aan vervanging toe</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€119,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>                                            
                                        </ul>
                                    </div>
                                </div>
                            </div>
														
														
														
														<div class="card">
                                <div class="card-header bg-white" id="headingfive">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapsefive" aria-expanded="true" aria-controls="collapsefive">Knoppen</button>
                                    </h5>
                                </div>
                                <div id="collapsefive" class="collapse" aria-labelledby="headingfive" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Volume knoppen </h6>
                                                        <p class="light-grey-text">Kan u uw toestel niet harder of zachter zetten? Dan zijn deze knoppen aan vervanging toe.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€69,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Aan/uitknop</h6>
                                                        <p class="light-grey-text">Gaat uw toestel moeilijk aan of uit? Dan is het raadzaam deze knop te laten vervangen.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€69,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>                                            
                                        </ul>
                                    </div>
                                </div>
                            </div>
														
														<div class="card">
                                <div class="card-header bg-white" id="headingsix">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapsesix" aria-expanded="true" aria-controls="collapsesix">Behuizing</button>
                                    </h5>
                                </div>
                                <div id="collapsesix" class="collapse" aria-labelledby="headingsix" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Behuizing Compleet</h6>
                                                        <p class="light-grey-text">Het kan voor komen dat na een val uw behuizing gescheurd is, Wij raden aan dit altijd te laten vervangen.</p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€199,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                                                                      
                                        </ul>
                                    </div>
                                </div>
                            </div>
														
														<div class="card">
                                <div class="card-header bg-white" id="headingSev">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseSev" aria-expanded="true" aria-controls="collapseSev">Waterschade</button>
                                    </h5>
                                </div>
                                <div id="collapseSev" class="collapse" aria-labelledby="headingSev" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Waterschade Onderzoek</h6>
                                                        <p class="light-grey-text">Plons! Wat een pech Telefoon in het water gevallen? Geen probleem wij kunnen uw telefoon in 90% van de gevallen nog redden. </p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>"Op aanvraag"</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                                                                      
                                        </ul>
                                    </div>
                                </div>
                            </div>
														
														<div class="card">
                                <div class="card-header bg-white" id="headingeight">
                                    <h5 style="margin: 0;">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseeight" aria-expanded="true" aria-controls="collapseeight">Software herstel</button>
                                    </h5>
                                </div>
                                <div id="collapseeight" class="collapse" aria-labelledby="headingeight" data-parent="#accordionExample">
                                    <div class="card-body">
                                        <ul class="list-group">
                                            <li class="list-group-item">
                                                <div class="row">
                                                    <div class="col-sm-7">
                                                        <h6>Sotfware herstellen</h6>
                                                        <p class="light-grey-text">Uw telefoon vult zich bij installeren van apps met allerlei onnodige software, Wij kunnen uw software veilig voor u herstellen. </p>
                                                    </div>
                                                    <div class="col-sm-3 text-center">
                                                        <span>€29,99</span>
                                                    </div>
                                                    <div class="col-sm-2 text-right">
                                                        <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
                                                    </div>
                                                </div>
                                            </li>
                                                                                      
                                        </ul>
                                    </div>
                                </div>
                            </div>
														
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="row justify-content-end btn-row">
            <div class="col-md-6 text-right" style="padding-right: 0;">
                <a href="#" class="next-page-btn" role="button">Maak een afspraak</a>
            </div>
        </div>
    </div>
</body>
</html>


en hier de code van pagina 2

HTML:
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
        integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js"
        integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf"
        crossorigin="anonymous"></script>
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css"
        integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous" />
    <title>Cart2</title>
    <style>
        body {
            font-family: 'Poppins', sans-serif;
        }

        /* @media (min-width: 1200px) {
            .container{
                max-width: 970px;
            }
            
        } */

        section {
            box-shadow: 0 .125rem .25rem .125rem rgba(0, 0, 0, .075) !important;
            border-radius: .25rem !important;
            background: white;
            padding: 15px;
            margin: 40px 0;

        }

        .title-row {
            padding-top: 10px;
            ;
        }

        .title-row h3 {
            font-size: 22px;
        }

        .inner-row {
            margin: 20px 0;
        }

        h4 {
            font-size: 16px;
        }

        .card-border {
            border: 1px solid #F9F9F9;
        }

        .card-bg {
            background-color: #F9F9F9;
        }

        .pd-class {
            padding-top: 15px;
            padding-bottom: 15px;
        }

        .color-row {
            margin: 15px 0;
        }

        .phone-box {
            margin: 20px 0;
        }

        .phone-image {
            max-width: 100%;
        }

        .phone-name {
            margin: 12px 0;
            text-align: center;
        }

        .phone-name h5 {
            color: black;
            font-size: 14px;
        }

        .card {
            margin: 15px 0;
            border: 1px solid #F0F0F0 !important;
            border-radius: 3px !important;
        }

        .light-grey-text {
            color: #707070;
            font-size: 12px;
        }

        .small-light-grey-text {
            color: #707070;
            font-size: 10px;
        }

        .form-fields {
            margin: 20px 0;
        }

        .radio-inline {
            font-size: 14px;
            color: #707070;
        }

        input[type=checkbox],
        input[type=radio] {
            margin-right: 10px;
        }

        .checkbox-inline {
            font-size: 14px;
        }

        .list-group-item {
            border: none;
        }

        .list-group-item:nth-child(2n+1) {
            background: #F9F9F9;
        }

        .list-group .list-group-item span {
            font-size: 12px;
            margin: 0;
        }

        .col {
            position: relative;
        }

        .label {
            position: absolute;
            left: 18px;
            top: -8px;
            background: white;
            padding-left: 4px;
            padding-right: 4px;
            font-size: 11px;
            color: #CCCCCC;
        }

        input[type=text],
        input[type=time],
        input[type=date] {
            font-size: 11px;
            color: black;
        }

        .summary {
            box-shadow: 0 .125rem .25rem .125rem rgba(0, 0, 0, .075) !important;
            border-radius: .25rem !important;
            background: white;
            margin: 40px 0;
        }

        .choosen-device {
            padding: 15px;
            border-top: 1px solid #F9F9F9;
            border-bottom: 1px solid #F9F9F9;


        }

        .choosen-device p {
            margin-bottom: 4px;
        }

        .details {
            padding: 15px;
                        
            border-bottom: 1px solid #F9F9F9;
        }

        .details span {
            margin-bottom: 0;
            color: #707070;
            font-size: 12px;
        }

        .details i {
            margin-left: 10px;
            color: red;
            font-size: 12px;
        }

        .btn-row {
            /* margin-top: 10px; */
            padding: 15px;
            padding-bottom: 20px;
            text-align: center;
        }

        .confirm-btn {
            background-color: #1AA0DE;
            width: 100%;
            color: white;
            border-radius: 6px;
            padding-top: 12px;
            padding-bottom: 12px;
            display: block;
        }

       .confirm-btn:hover {
            text-decoration: none;
            color: white;
        }
    </style>
</head>

<body>
    <div class="container" style="margin-top: 20px;">
        <div class="row justify-content-between">
            <div class="col-md-8">
                <section class="device-information">
                    <div class="title-row">
                        <h3>Device Information</h3>
                        <p class="small-light-grey-text">We are expert in repairing in top brands</p>
                    </div>
                    <div class="inner-row row justify-content-between">
                        <div class="col-sm-5 col-6 card-border">
                            <div class="row pd-class">
                                <div class="col-md-8">
                                    <div class="inner-row-title">
                                        <h4>Brand</h4>
                                        <p class="light-grey-text">Apple</p>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="image">
                                        <img src="iphone11black.jpg" class="phone-image" alt="">
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="col-sm-5 col-6 card-border">
                            <div class="row pd-class">
                                <div class="col-md-8">
                                    <div class="inner-row-title">
                                        <h4>Model</h4>
                                        <p class="light-grey-text">iphone 11</p>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="image">
                                        <img src="iphone11black.jpg" class="phone-image" alt="">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="card-bg">
                        <div class="col-md-12 pd-class">
                            <div class="inner-row-title">
                                <h4>Kies de kleur van je telefoon</h4> 
                            </div>
                            <div class="row color-row">
                                <div class="col-md-4">
                                    <div class="phone-box">
                                        <div class="phone-image-box">
                                            <img src="iphone11black.jpg" class="phone-image" alt="">
                                        </div>
                                        <div class="phone-name">
                                            <h5>iPhone 11 Black</h5>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="phone-box">
                                        <div class="phone-image-box">
                                            <img src="iphone11black.jpg" class="phone-image" alt="">
                                        </div>
                                        <div class="phone-name">
                                            <h5>iPhone 11 Black</h5>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="phone-box">
                                        <div class="phone-image-box">
                                            <img src="iphone11black.jpg" class="phone-image" alt="">
                                        </div>
                                        <div class="phone-name">
                                            <h5>iPhone 11 Black</h5>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="phone-box">
                                        <div class="phone-image-box">
                                            <img src="iphone11black.jpg" class="phone-image" alt="">
                                        </div>
                                        <div class="phone-name">
                                            <h5>iPhone 11 Black</h5>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="phone-box">
                                        <div class="phone-image-box">
                                            <img src="iphone11black.jpg" class="phone-image" alt="">
                                        </div>
                                        <div class="phone-name">
                                            <h5>iPhone 11 Black</h5>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </section>
                <section class="preferences">
                    <div class="title-row">
                        <h3>Reparatie aanvulling</h3>
                        <p class="small-light-grey-text">vul de onderstaande velden in</p>
                    </div>
                    <div class="preferences-form" style="padding-left:15px;padding-right: 15px;">
                        <form action="">
                            <div class="form-fields">
                                <h4>Maak een keuze </h4>
                                <div class="row justify-content-between">
                                    <div class="col-sm-5 col-5 ">
                                        <label class="radio-inline">
                                            <input type="radio" name="optradio" checked>Reparatie in de winkel(30 minuten)
                                        </label>
                                    </div>
                                    <div class="col-sm-7 col-7">
                                        <label class="radio-inline">
                                            <input type="radio" name="optradio">Haal & Breng Service (binnen 24 Hrs)
                                        </label>
                                    </div>
                                </div>
                            </div>
                            <div class="form-fields">
                                <h4>Wenst u een aanvulling</h4>
                                <p class="light-grey-text">Vul uw reparatie aan met.</p>
                                <ul class="list-group card-border">
                                    <li class="list-group-item">
                                        <div class="row">
                                            <div class="col-sm-8 col-8">
                                                <label class="checkbox-inline"><input type="checkbox" value="">Scherm protectie</label>
                                            </div>
                                            <div class="col-sm-4 col-3 text-right">
                                                <span>€13,50</span>
                                            </div>
                                        </div>
                                    </li>
                                    <li class="list-group-item">
                                        <div class="row">
                                            <div class="col-sm-8 col-8">
                                                <label class="checkbox-inline"><input type="checkbox" value="">Iphone 11 earphones</label>
                                            </div>
                                            <div class="col-sm-4 col-3 text-right">
                                                <span>€12,50</span>
                                            </div>
                                        </div>
                                    </li>
                                    <li class="list-group-item">
                                        <div class="row">
                                            <div class="col-sm-8 col-8">
                                                <label class="checkbox-inline"><input type="checkbox" value="">Usb charge kabel</label>
                                            </div>
                                            <div class="col-sm-4 col-3 text-right">
                                                <span>€8,50</span>
                                            </div>
                                        </div>
                                    </li>
                                </ul>
                            </div>
                        </form>
                    </div>
                </section>
                <section class="booking">
                    <div class="title-row">
                        <h3>Reserverings bevestiging</h3>
                        <p class="small-light-grey-text">Vul de velden in.</p>
                    </div>
                    <div class="customer-info">
                        <h6 style="margin-bottom: 0;">Klant Informatie</h6>
                        <div>
                            <form>
                                <div class="form-row form-fields">
                                    <div class="col">
                                        <label class="label" for="fname">Voornaam</label>
                                        <input type="text" class="form-control" placeholder="">
                                    </div>
                                    <div class="col">
                                        <label class="label" for="fname">Achternaam</label>
                                        <input type="text" class="form-control" placeholder="">
                                    </div>
                                </div>
                                <div class="form-row form-fields">
                                    <div class="col">
                                        <label class="label" for="fname">Email Adres</label>
                                        <input type="text" class="form-control" placeholder="">
                                    </div>
                                    <div class="col">
                                        <label class="label" for="fname">telefoonnummer</label>
                                        <input type="text" class="form-control" placeholder="">
                                    </div>
                                </div>
                                <div class="form-row form-fields">
                                    <div class="col">
                                        <label class="label" for="fname">Adres & postcode</label>
                                        <input type="text" class="form-control" placeholder="">
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                    <div class="customer-info">
                        <h6 style="margin-bottom: 0;">Afspraak bevestiging</h6>
                        <div>
                            <form>
                                <div class="form-row form-fields">
                                    <div class="col">
                                        <label class="label" for="fname">Datum</label>
                                        <input type="date" class="form-control" placeholder="">
                                    </div>
                                    <div class="col">
                                        <label class="label" for="fname">Tijd</label>
                                        <input type="time" class="form-control" placeholder="">
                                    </div>
                                </div>
                                <div class="form-row form-fields">
                                    <div class="col">
                                        <label class="label" for="fname">Aanvullende informatie</label>
                                        <!-- <input type="textarea" class="form-control" placeholder="" rows="3"> -->
                                        <textarea class="form-control" id="exampleFormControlTextarea1"
                                            rows="3"></textarea>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>


                </section>
            </div>
            <div class="col-md-4">
                <div class="summary">
                    <div class="title-row" style="padding: 15px;">
                        <h3>Reparatie Overzicht</h3>
                    </div>
                    <div class="choosen-device">
                        <div class="row justify-content-between">
                            <div class="col-sm-8 col-8">
                                <h4>Gekozen Telefoon</h4>
                                <p class="light-grey-text">Apple iPhone 11</p>
                                <p class="light-grey-text">Color: Black</p>
                            </div>
                            <div class="col-sm-3 col-3">
                                <div class="image">
                                    <img src="iphone11black.jpg" class="phone-image" alt="">
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="details">
                        <h4>Reparatie Informatie</h4>
                        <div class="row justify-content-between pd-class">
                            <div class="col-sm-6 col-6">
                                <span>Screen and Display</span>
                            </div>
                            <div class="col-sm-6 col-6 text-right">
                                <div> <span>Screen and Display</span><a href=""><i class="fa fa-times"
                                            aria-hidden="true"></i></a></div>
                                <div> <span>Screen and Display</span><a href=""><i class="fa fa-times"
                                            aria-hidden="true"></i></a></div>
                                <div> <span>Screen and Display</span><a href=""><i class="fa fa-times"
                                            aria-hidden="true"></i></a></div>
                            </div>
                        </div>
                        <div class="row justify-content-between pd-class">
                            <div class="col-sm-6 col-6">
                                <span>Screen and Display</span>
                            </div>
                            <div class="col-sm-6 col-6 text-right">
                                <div> <span>Screen and Display</span><a href=""><i class="fa fa-times"
                                            aria-hidden="true"></i></a></div>
                                <div> <span>Screen and Display</span><a href=""><i class="fa fa-times"
                                            aria-hidden="true"></i></a></div>
                                <div> <span>Screen and Display</span><a href=""><i class="fa fa-times"
                                            aria-hidden="true"></i></a></div>
                            </div>
                        </div>
                    </div>
                    <div class="details">
                        <h4>Afspraak Informatie</h4>
                        <div class="row justify-content-between">
                            <div class="col-sm-6 col-6">
                                <span>Reparatie datum</span>
                            </div>
                            <div class="col-sm-6 col-6 text-right">
                                <div> <span>15-maart-2021  </span></div>
                            </div>
                        </div>
                        <div class="row justify-content-between">
                            <div class="col-sm-6 col-6">
                                <span>Tijd</span>
                            </div>
                            <div class="col-sm-6 col-6 text-right">
                                <div> <span>10:00 AM to 10:30 AM</span></div>
                            </div>
                        </div>
                    </div>
                    <div class="pd-class" style="padding-left: 15px; padding-right: 15px;">
                        <div class="row justify-content-between">
                            <div class="col-sm-6 col-6">
                                <h4>Total</h4>
                            </div>
                            <div class="col-sm-6 col-6 text-right">
                                <div> <span>€ </span></div>
                            </div>
                        </div>
                        <div class="row justify-content-between">
                            <div class="col-sm-6 col-6">
                                <h4>Reparatietijd</h4>
                            </div>
                            <div class="col-sm-6 col-6 text-right">
                                <div> <span>30 minuten</span></div>
                            </div>
                        </div>
                    </div>
                    <div class="btn-row">
                        <a href="" class="confirm-btn">Afspraak Maken</a>
                    </div>
                </div>
            </div>
        </div>
    </div>    
</body>

</html>

Ben benieuwd wat ik over het hoofd gezien heb ?
Alvast bedankt voor het meedenken alweer :o

mvg niels
 
Laatst bewerkt:
Sowieso maak je een winkelmandje waarbij je de gegevens opslaat op een van de 2 volgende manieren waaruit ik persoonlijk zou kiezen voor de manier waarop jij werkt:

1. De gekozen reparaties in de array opslaan die ik al gemaakt heb.
Dit doe je door de parameter "gekozen" te veranderen als de klant de checkbox aan- of uitvinkt (0 voor uit en 1 voor aan)
Let wel: hier zal je slechts een deel van de pagina mogen vernieuwen als de klant op de knop "maak een afspraak" klikt (dit doe je met een stukje ajax waarbij je de tweede pagina binnen je eerste pagina laadt)
Hier ga je in je tweede pagina ook niets meer in de head plaatsen zoals links naar css of externe js bronnen omdat deze al geladen zijn in je eerste pagina.

Code:
const areparaties = [
  {
    omschrijving: "Scherm|Origineel",
    prijs: 149.99,
    gekozen: 0
  },
  {
    omschrijving: "Scherm|Hoge kwaliteit",
    prijs: 129.99,
    gekozen: 0
  },
  {
    omschrijving: "Batterij",
    prijs: 59.99,
    gekozen: 0
  },
...
]

2. Door hetzelfde te doen, maar dan in "sessionStorage" opslaan
Deze laatste geeft je de mogelijkheid de pagina volledig te vernieuwen zonder de gekozen gegevens te verliezen.
Deze tweede geniet mijn voorkeur
 
Laatst bewerkt:
Sowieso maak je een winkelmandje waarbij je de gegevens opslaat op een van de 2 volgende manieren waaruit ik persoonlijk zou kiezen voor de manier waarop jij werkt:

1. De gekozen reparaties in de array opslaan die ik al gemaakt heb.
Dit doe je door de parameter "gekozen" te veranderen als de klant de checkbox aan- of uitvinkt (0 voor uit en 1 voor aan)
Let wel: hier zal je slechts een deel van de pagina mogen vernieuwen als de klant op de knop "maak een afspraak" klikt (dit doe je met een stukje ajax waarbij je de tweede pagina binnen je eerste pagina laadt)
Hier ga je in je tweede pagina ook niets meer in de head plaatsen zoals links naar css of externe js bronnen omdat deze al geladen zijn in je eerste pagina.

Code:
const areparaties = [
  {
    omschrijving: "Scherm|Origineel",
    prijs: 149.99,
    gekozen: 0
  },
  {
    omschrijving: "Scherm|Hoge kwaliteit",
    prijs: 129.99,
    gekozen: 0
  },
  {
    omschrijving: "Batterij",
    prijs: 59.99,
    gekozen: 0
  },
...
]

2. Door hetzelfde te doen, maar dan in "sessionStorage" opslaan
Deze laatste geeft je de mogelijkheid de pagina volledig te vernieuwen zonder de gekozen gegevens te verliezen.
Deze tweede geniet mijn voorkeur

thanx voor je reactie jeroen dus als ik het goed begrijp moet ik het js bestand aanvullen met bovenstaande ;)
 
thanx voor je reactie jeroen dus als ik het goed begrijp moet ik het js bestand aanvullen met bovenstaande ;)

Het zal toch iets meer zijn dan gewoon aanvullen.

Ik geef opzettelijk niet meteen de volledige oplossing zodat je zelf nog het een en ander kunt uitzoeken en leren ;)
 
Het zal toch iets meer zijn dan gewoon aanvullen.

Ik geef opzettelijk niet meteen de volledige oplossing zodat je zelf nog het een en ander kunt uitzoeken en leren ;)

je hebt eigenlijk 3 plekken waar een winkelwagen idee achter zit. of in ieder geval zien wat het kost de uit eindelijke reparatie betalen ze in de winkel is puur om te laten zien wat de kosten zijn met de afspraak booking in plannen.
misschien botsen ze wel met elkaar dan ;) mvg niels
 
Ben je ondertussen al verder geraakt met je project?

Mijn weekend was nogal druk waardoor ik hier geen aandacht aan heb kunnen besteden
 
Ben je ondertussen al verder geraakt met je project?

Mijn weekend was nogal druk waardoor ik hier geen aandacht aan heb kunnen besteden

wel iets niet veel ;) maar effe ergens anders aan begonnen, moet tussen door ook nog telefoons repareren dus ja her en der een beetje, winkel ook weer open ;)
nu dit weekend zoekgedeelte gemaakt :D komen doen we er vast zit alleen zoveel tijd in waar niet echt de tijd voor heb ;)

mvg niels
 
wel iets niet veel ;) maar effe ergens anders aan begonnen, moet tussen door ook nog telefoons repareren dus ja her en der een beetje, winkel ook weer open ;)
nu dit weekend zoekgedeelte gemaakt :D komen doen we er vast zit alleen zoveel tijd in waar niet echt de tijd voor heb ;)

mvg niels

Ik heb verder gewerkt met de nieuwe pagina's, maar de tijd ontbreekt me om me er genoeg te kunnen op focussen om het verder af te werken.

Wat je zult moeten doen, is een manier zoeken om wat ik gemaakt heb te combineren met de nieuwe pagina's en sessionStorage gebruiken voor het opslaan van wat wel en wat niet aangevinkt is.

Mocht ik weer wat meer tijd hebben, zal ik hier verder aandacht aan besteden mocht je nog geen werkende oplossing hebben.

mvg Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan