Hey zusammen,
ich habe nun ein kleines php skript geschrieben mit dem ich mit $_POST die einzelnen Sachen aus meinem Bestellformular nach dem absenden , abfange/auslese und diese in ein externes txt dokument gespeichert wird.
Nun meine Frage. ich habe jetzt 4 Angebote. Ich habe für jedes Angebot einzelt eine variable erstellt. Nun wenn ich nur eins klicke kommt dann immer undefined angebot.. ich weiß ja auch warum. Weil ich alle auslese aber dieses zum auslesen nicht geklickt ist und dann dieser Wert fehlt.
Wie macht man das, das diese 4 Angebote je aufgeteilt sind, also wenn angebot 1 ist geklickt tuh nur angebot 1 abfragen, wenn 2 angebote geklickt sind von 4 tuh nur die 2 abfragen usw..
Mein HTML & PHP:
<h1>Bestellformular</h1>
<div id="formular">
<form action="bestellformular-auswertung.php" method="post">
<!-- Vor- und Nachname -->
<label for="vname"><span>*</span> Ihr Vorname:</label>
<input type="text" id="vname" name="name" required>
<label for="nname"><span>*</span> Ihr Nachname:</label>
<input type="text" id="nname" name="nachname" required><br><br><br>
<!-- Alter -->
<p><span>*</span> Bist du 18 Jahre alt?</p>
<label id="alter-ja">Ja</label><input type="radio" id="alter-ja" name="alter18" value="+18">
<label id="alter-nein">Nein</label><input type="radio" id="alter-nein" name="alter18" value="-18" required>
<!-- E-mail --><br><br><br><br>
<label for="email"><span>*</span> Ihre E-Mail-Adresse:</label>
<input type="email" id="email" name="email" required>
<br><br><br>
<p id="uberschrift"><u>Was möchten sie bestellen?</u></p>
<br>
<label for="angebot1" >Bilder</label>
<input type="checkbox" id="angebot1" name="angebot1" value="15.99€"/>
<br><br>
<label for="angebot2" >Videos</label>
<input type="checkbox" id="angebo2t" name="angebot2" value="30.99€" />
<br><br>
<label for="angebot3">E-Book</label>
<input type="checkbox" id="angebot3" name="angebot3" value="15.99€" />
<br><br>
<label for="angebot4" >Buch</label>
<input type="checkbox" id="angebot4" name="angebot4" value="10.99€"/>
<script>
// Summenvariable deklarieren und auf Startwert 0 setzen
var _summe = 0;
// Sammel alle INPUT-Elemente in einer Objekt-Liste ( _angebote )
_angebote = document.getElementsByTagName( 'input' );
// Schleife über alle Elemente der Objektliste ( _angebote ), bis die Anzahl der Elemente erreicht wurde
for ( x=0; x<_angebote.length; x++ ) {
if ( _angebote[x].type == 'checkbox' ) { // <- hier wird bereits nach dem Input-Type gefragt
_angebote[x].addEventListener( 'click', sumvalue );
if ( _angebote[x].checked ) {
_summe += parseFloat(_angebote[x].value);
}
}
}
Number.prototype.roundDecimal = function( dec_cnt ) {
_deccnt = parseFloat( '0.' + '0'.repeat(dec_cnt) + '1' );
return Math.round( (this + _deccnt) * 100 ) / 100;
}
// Die Funktion sumvalue() wird bei jedem Klick auf eine Checkbox automatisch ausgelöst
function sumvalue() {
// prüfen ob Checkbox gechecked ist...
if ( this.checked )
// ...Wert der Checkbox als Fliesskommazahl zu _summe addieren
_summe += parseFloat( this.value );
// ...wenn nicht gechecked...
else
// ...Wert der Checkbox als Fliesskommazahl von _summe abziehen
_summe -= parseFloat( this.value );
// Aktuell berechnete Summe in entsprechendem DIV ausgeben
document.getElementById( 'summe' ).innerHTML = _summe.roundDecimal(2) + '€';
document.getElementById('zeit').innerHTML = "Lieferzeit beträgt : 1 Tag";
}
</script>
<br><br>
<div style="color:white">Es kostet : <span id="summe">0€</span> </div>
<div id="zeit" style="color:white"></div><br>
<button id="bestellbutton">Bestellen!</button>
</form>
</div>
Alles anzeigen
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Auswertung</title>
</head>
<body>
<style>
body{
background-color: blue;
}
div#auswertung
{
margin: 0 auto;
height: 500px;
width: 400px;
border: 3px solid yellow;
background-color: black;
}
div#innen
{
padding-left: 10px;
padding-right:10px;
padding-top: 30px;
color: cyan;
}
input[type='submit']{
padding: 10px 10px 10px 10px;
background-color: gray;
border: 3px solid cyan;
color: cyan;
}
input[type='submit']:hover
{
background-color: white;
color:black;
cursor: pointer;
}
</style>
<div id="auswertung">
<div id="innen" >
<?php
$vorname = $_POST['name'];
$nachname = $_POST['nachname'];
$alter = $_POST['alter18'];
$email = $_POST['email'];
$angebot1 = $_POST['angebot1'];
$angebot2 = $_POST['angebot2'];
$angebot3 = $_POST['angebot3'];
$angebot4 = $_POST['angebot4'];
$ausgabe = $vorname ."\r\n".$nachname . "\r\n" .$alter . "\r\n" .$email. "\r\n" . $angebot1. "\r\n" .$angebot2. "\r\n".$angebot3. "\r\n" .$angebot4 ."\r\n";
$datei = fopen("auswertung.txt", "a");
$output = fwrite($datei, $ausgabe);
fclose($datei);
?>
<?php
echo "Ihr Vorname:" . $vorname."<br>" ;
echo "Ihr Nachname:" . $nachname."<br>" ;
echo "Ihr Alter:" . $alter."<br>" ;
echo "Ihre Email:" . $email."<br><br><br>" ;
echo "<u>Ihre Bestellung:</u> <br><br>" ;
echo "Bilder:" .$angebot1."<br>";
echo "Videos:" . $angebot2."<br>";
echo "E-Book:" . $angebot3."<br>" ;
echo "Buch:" . $angebot4 ;
?>
<p>Bitte Bestätigen sie nochmals ihre Bestellung!</p>
<form action="index.html">
<input type="submit" name="bestätigen" value="Bestellung bestätigen">
</form>
</div>
</div>
</body>
</html>
Alles anzeigen
Kann es sein das man das mit if else macht ?
Gruß,
Stef