Hallo Leuts,
ich tüftel seit geraumer Zeit an einem mehrseitigem Formular. Als es noch einseitig war, funktionierte alles - auch die Checkbox-Auswahl wurde korrekt in der Datenbank gespeichert.
Da das Formular aber zu lang ist, unterteilte ich es auf 2 Seiten. Es werden aber immer nur die Checkboxen von der letzten Seite korrekt abgespeichert. Andere Textfelder-Inhalte funktionieren. Für die Checkboxen trägt mysql/PHPmyAdmin in das Feld nun immer ein "A" ein Misteriös.
Index1.php im Groben:
Index2.php im Groben:
Der PHP-Code dazu:
Ich glaube es muss irgendwie an der Funktion function form_daten() liegen, dass diese das Array nicht richtig mit rüber nimmt. Orientiert hatte ich mich u.a. an diesem Beispiel, was wie gesagt für den Einseiter vorher auch funktionierte: https://www.selfphp.de/praxisbuch/pr...e=188&group=32
Hat irgendjemand eine Idee, wo oder wie ich den Code abändern müsste? Dafür wäre ich mega dankbar, ich stehe auf dem Schlauch und taste mich an PHP etc erst heran.. was man bestimtm in umständlichem Code erkennen könnte
Viele Grüße
ich tüftel seit geraumer Zeit an einem mehrseitigem Formular. Als es noch einseitig war, funktionierte alles - auch die Checkbox-Auswahl wurde korrekt in der Datenbank gespeichert.
Da das Formular aber zu lang ist, unterteilte ich es auf 2 Seiten. Es werden aber immer nur die Checkboxen von der letzten Seite korrekt abgespeichert. Andere Textfelder-Inhalte funktionieren. Für die Checkboxen trägt mysql/PHPmyAdmin in das Feld nun immer ein "A" ein Misteriös.
Index1.php im Groben:
HTML-Code:
<form action="index2.php" method="post"> <h1>Art des Wohnraumes:</h1> <span class="reihe"><input type="radio" name="wohnraumArt[]" value="Eimfamilienhaus" /> Eimfamilienhaus</span> <span class="reihe"><input type="radio" name="wohnraumArt[]" value="Doppel- oder Reihenendhaus" /> Doppel- oder Reihenendhaus </span> <span class="reihe"><input type="radio" name="wohnraumArt[]" value="Reihenmittelhaus" /> Reihenmittelhaus</span> <span class="reihe"><input type="radio" name="wohnraumArt[]" value="Wohnung" /> Wohnung</span> <h1>Anschrift des Objektes:</h1> <label><span class="auswahl">Strasse: </span> <input type="text" name="strasse" id="strasse"> </label> <label><span class="auswahl">Ort: </span> <input type="text" name="ort" id="ort"> </label> <h1>Wohnfläche in m²:</h1> <label> <input type="text" name="wohnflaeche" id="wohnflaeche"> </label> <h1>Baujahr des Hauses:</h1> <label> <input type="text" name="baujahr" id="baujahr"> </label> <br><br> <p align="center"><input type="submit" name="Submit" value="Weiter..."></p> </form>
HTML-Code:
<form action="" method="post"> <?php form_daten(); ?> <h1>Monatliche Nettogrundmiete (ohne Nebenkosten):</h1> <label><span class="auswahl-3">Nettogrundmiete: </span> <input type="text" name="nettogrundmiete" id="nettogrundmiete"><br> Wann wurde die zurzeit gezahlte Nettogrundmiete vereinbart? <input type="text" name="nettogrundmieteWannBezahlt" id="nettogrundmieteWannBezahlt"><br> <input type="checkbox" name="grundsteuerEnthalten[]" value="Ja" /> Grundsteuer und Versicherung sind in der vereinbarten Miete enthalten.<br> </label> <h1>Miete für Garage, Carport, Stellplatz in Euro:</h1> <label><span class="auswahl-3">Garage: </span> <input type="text" name="mieteGarage" id="mieteGarage"> </label> <label><span class="auswahl-3">Carport: </span> <input type="text" name="mieteCarport" id="mieteCarport"> </label> <label><span class="auswahl-3">Stellplatz: </span> <input type="text" name="mieteStellplatz" id="mieteStellplatz"> </label> <br> <input type="checkbox" name="automieteEnthalten[]" value="Ja" /> Miete für Garage, Carport, Stellplatz ist in der Nettogrundmiete enthalten.<br> <h1>Zum Objekt gehörende Besonderheiten, die den Mietwert beeinflussen könnten:</h1> <textarea name="anmerkung" id="anmerkung"></textarea><br><br> <p align="center"><input type="hidden" name="aktion" value="speichern"> <input type="submit" value="Absenden"></p> </form>
Der PHP-Code dazu:
PHP-Code:
<?php
function form_daten() {
if (isset($_POST)) {
foreach ($_POST as $key => $element) {
echo "<input type="hidden" name="$key" value="$element">";
}
}
else {
foreach ($_GET as $key => $element) {
echo "<input type="hidden" name="$key" value="$element">";
}
}
}
?>
<?php
if (isset($_POST['aktion']) and $_POST['aktion']=='speichern') {
$strasse = "";
if (isset($_POST['strasse'])) {
$strasse = trim($_POST['strasse']);
}
$ort = "";
if (isset($_POST['ort'])) {
$ort = trim($_POST['ort']);
}
$anmerkung = "";
if (isset($_POST['anmerkung'])) {
$anmerkung = trim($_POST['anmerkung']);
}
$erstellt = date("Y-m-d H:i:s");
if ( $strasse != '' or $ort != '' or $anmerkung != '' )
{
$wohnflaeche = "";
if (isset($_POST['wohnflaeche'])) {
$wohnflaeche = trim($_POST['wohnflaeche']);
}
$baujahr = "";
if (isset($_POST['baujahr'])) {
$baujahr = trim($_POST['baujahr']);
}
$nettogrundmiete = "";
if (isset($_POST['nettogrundmiete'])) {
$nettogrundmiete = trim($_POST['nettogrundmiete']);
}
$nettogrundmieteWannBezahlt = "";
if (isset($_POST['nettogrundmieteWannBezahlt'])) {
$nettogrundmieteWannBezahlt = trim($_POST['nettogrundmieteWannBezahlt']);
}
$mieteGarage = "";
if (isset($_POST['mieteGarage'])) {
$mieteGarage = trim($_POST['mieteGarage']);
}
$mieteCarport = "";
if (isset($_POST['mieteCarport'])) {
$mieteCarport = trim($_POST['mieteCarport']);
}
$mieteStellplatz = "";
if (isset($_POST['mieteStellplatz'])) {
$mieteStellplatz = trim($_POST['mieteStellplatz']);
}
$keineAngabe = '';
/* ############## Hier beginnt die WOHNRAUM Chackbox-Sektion ######## */
$anzahl = count ( $_POST['wohnraumArt'] );
/*
* Wenn nur eine Checkbox aktiviert ist, muss
* keine Schleife durchlaufen werden
*/
if ( $anzahl == 1 )
{
$wohnraumArt = htmlspecialchars ( $_POST['wohnraumArt'][0] );
}
/* Wenn keine Checkbox aktiviert wurde */
else
{
$wohnraumArt = $keineAngabe;
}
/* ############## Grundsteuer enthalten? Checkbox ######## */
$anzahl = count ( $_POST['grundsteuerEnthalten'] );
/*
* Wenn nur eine Checkbox aktiviert ist, muss
* keine Schleife durchlaufen werden
*/
if ( $anzahl == 1 )
{
$grundsteuerEnthalten = htmlspecialchars ( $_POST['grundsteuerEnthalten'][0] );
}
/* Wenn keine Checkbox aktiviert wurde */
else
{
$grundsteuerEnthalten = $keineAngabe;
}
/* ############## Stellplatz-Miete Auto enthalten? Checkbox ######## */
$anzahl = count ( $_POST['automieteEnthalten'] );
/*
* Wenn nur eine Checkbox aktiviert ist, muss
* keine Schleife durchlaufen werden
*/
if ( $anzahl == 1 )
{
$automieteEnthalten = htmlspecialchars ( $_POST['automieteEnthalten'][0] );
}
/* Wenn keine Checkbox aktiviert wurde */
else
{
$automieteEnthalten = $keineAngabe;
}
// speichern
$einfuegen = $db->prepare("
INSERT INTO kontakte (strasse, ort, anmerkung, erstellt, wohnraumArt, wohnflaeche, baujahr, nettogrundmiete, nettogrundmieteWannBezahlt, grundsteuerEnthalten, mieteGarage, mieteCarport, mieteStellplatz, automieteEnthalten)
VALUES (?, ?, ?, NOW(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
");
$einfuegen->bind_param('sssssssssssss', $strasse, $ort, $anmerkung, $wohnraumArt, $wohnflaeche, $baujahr, $nettogrundmiete, $nettogrundmieteWannBezahlt, $grundsteuerEnthalten, $mieteGarage, $mieteCarport, $mieteStellplatz, $automieteEnthalten );
if ($einfuegen->execute()) {
// header('Location: index.php?aktion=feedbackgespeichert');
// die();
echo "<h2>Danke für Ihre Angaben!</h2>";
}
}
}
if (isset($_GET['aktion']) and $_GET['aktion']=='feedbackgespeichert') {
echo '<p class="feedbackerfolg">Datensatz wurde gespeichert</p>';
}
?>
Hat irgendjemand eine Idee, wo oder wie ich den Code abändern müsste? Dafür wäre ich mega dankbar, ich stehe auf dem Schlauch und taste mich an PHP etc erst heran.. was man bestimtm in umständlichem Code erkennen könnte
Viele Grüße
Kommentar