Javascript Variable per Hiddenformular an DB
Hallo zusammen,
über die Suchfunktion habe ich leider nichts passendes gefunden.
Ich bin aktuell noch ein PHP und Javascript Neuling.
Ich habe eine Website mit PHP erstellt, in dem User bestimmte Felder ausfüllen sollen. Die Daten sollen anschließend an eine Datenbank übergeben werden.
Aktuell habe ich zwei Formularfelder (die Übergabe der Variablen funktioniert ohne Probleme) und einen Wert der über vier verschiedene Buttons verändert werden kann.
Die Buttons habe ich mit Javascript gemacht. Den Wert der Javascript Variable "Behalter" möchte ich nun auch übergeben, allerdings scheitert es hier.
Ich habe versucht den Wert in ein Hidden Formularfeld (id="hbehalter") zu schreiben und anschließend per PHP an die Datenbank zu übergeben.
Es wird aber nur der Startwert, in meinem Fall 0, an die Variable übergeben und anschließend in die Datenbank eingetragen.
Ich hoffe ihr könnt mir helfen eine Lösung zu finden mit der ich meinen gewünschten Wert übergeben kann.
Zum Test habe ich aktuell nur einen Wert der über Buttons verändert werden soll, sobald das funktioniert sollen weitere hinzugefügt werden. Das möchte ich über eine Schleife aus den Spaltennamen der Datenbanktabelle realisieren, aber das ist eine andere Geschichte.
Anbei mein Code, der betroffene Wert wird von den Buttons von Zeile 104 bis 144 geändert:
über die Suchfunktion habe ich leider nichts passendes gefunden.
Ich bin aktuell noch ein PHP und Javascript Neuling.
Ich habe eine Website mit PHP erstellt, in dem User bestimmte Felder ausfüllen sollen. Die Daten sollen anschließend an eine Datenbank übergeben werden.
Aktuell habe ich zwei Formularfelder (die Übergabe der Variablen funktioniert ohne Probleme) und einen Wert der über vier verschiedene Buttons verändert werden kann.
Die Buttons habe ich mit Javascript gemacht. Den Wert der Javascript Variable "Behalter" möchte ich nun auch übergeben, allerdings scheitert es hier.
Ich habe versucht den Wert in ein Hidden Formularfeld (id="hbehalter") zu schreiben und anschließend per PHP an die Datenbank zu übergeben.
Es wird aber nur der Startwert, in meinem Fall 0, an die Variable übergeben und anschließend in die Datenbank eingetragen.
Ich hoffe ihr könnt mir helfen eine Lösung zu finden mit der ich meinen gewünschten Wert übergeben kann.
Zum Test habe ich aktuell nur einen Wert der über Buttons verändert werden soll, sobald das funktioniert sollen weitere hinzugefügt werden. Das möchte ich über eine Schleife aus den Spaltennamen der Datenbanktabelle realisieren, aber das ist eine andere Geschichte.
Anbei mein Code, der betroffene Wert wird von den Buttons von Zeile 104 bis 144 geändert:
<?php
require 'inc/db.php';
$db->set_charset('utf8');
if (isset($_POST['aktion']) and $_POST['aktion']=='speichern') {
$Schicht = "";
if (isset($_POST['Schicht'])) {
$Schicht = trim($_POST['Schicht']);
}
$Mitarbeiternummer = "";
if (isset($_POST['Mitarbeiternummer'])) {
$Mitarbeiternummer = trim($_POST['Mitarbeiternummer']);
}
$hbehalter = "";
if (isset($_POST['hbehalter'])) {
$hbehalter = trim($_POST['hbehalter']);
}
$erstellt = date("Y-m-d H:i:s");
if ( $Schicht != '' or $Mitarbeiternummer != '' or $hbehalter != '')
{
// speichern
$einfuegen = $db->prepare("
INSERT INTO test (Schicht, Mitarbeiternummer, Behaelter, erstellt)
VALUES (?, ?, ?, NOW())
");
$einfuegen->bind_param('sss', $Schicht, $Mitarbeiternummer, $hbehalter);
if ($einfuegen->execute()) {
header('Location: Gespeichert.php?aktion=feedbackgespeichert');
die();
echo "<h1>gespeichert</h1>";
}
}
}
if (isset($_GET['aktion']) and $_GET['aktion']=='feedbackgespeichert') {
echo '<p class="feedbackerfolg">Datensatz wurde gespeichert</p>';
}
?>
<script>
Behalter = 0;
</script>
<style>
.Button {
background-color:#bfbfbf;
-moz-border-radius:28px;
-webkit-border-radius:28px;
border-radius:28px;
border:1px solid #ffffff;
display:inline-block;
cursor:pointer;
color:#000000;
font-family:Arial;
font-size:17px;
padding:5px 8px;
text-decoration:none;
}
.Button:hover {
background-color:#8f8f8f;
}
.Button:active {
position:relative;
top:1px;
.left {
text-align: left
}
</style>
<head>
</head>
<body style="font-family: Arial;">
<table width="100%">
<tr>
<td style="background: #009eb8"; height="50em" width="100%">
<?php
echo '<img src="logo.png" alt="Logo">'
?>
</td>
</tr>
</table>
<form action="" method="post">
<table width="100%">
<tr>
<td>
<label for="Schicht">Schicht:
<select id="Schicht" name="Schicht" size="1">
<option></option>
<option>Früh</option>
<option>Spät</option>
<option>Nacht</option>
</select>
</label>
</td>
<td>
<label for="Mitarbeiternummer">
Mitarbeiternummer:
</label>
<input id="Mitarbeiternummer" name="Mitarbeiternummer" type="text" class="left">
</td>
</tr>
</table>
<table width="100%">
<tr>
<!-- hier sind die Buttons die einen Wert ändern-->
<td style="text-align: center; ">
<p>Anzahl Behälter:</p>
<input type="hidden" name="hbehalter" id="hbehalter" />
<script type="text/javascript">
function plusclick1() {
Behalter += 1;
document.getElementById("Behalter").innerHTML = Behalter;
};
</script>
<button class="Button" type="button" onClick="plusclick1()">+1</button>
<script type="text/javascript">
function plus10click1() {
Behalter += 10;
document.getElementById("Behalter").innerHTML = Behalter;
};
</script>
<button class="Button" type="button" onClick="plus10click1()">+10</button>
<p> <a id="Behalter">0</a></p>
<script type="text/javascript">
function minusclick1() {
if (Behalter>0) {
Behalter -= 1;
}
document.getElementById("Behalter").innerHTML = Behalter;
};
</script>
<button class="Button" type="button" onClick="minusclick1()">-1</button>
<script type="text/javascript">
function minus10click1() {
Behalter -= 10;
if (Behalter<0) {
Behalter = 0;
}
document.getElementById("Behalter").innerHTML = Behalter;
};
</script>
<script>
document.getElementById("hbehalter").value = Behalter;
</script>
<button class="Button" type="button" onClick="minus10click1()">-10</button>
</td>
</tr>
<tr>
<td style="background: #009eb8"; height="50em" width="100%" display: inline-block; >
<div>
<input class="Button" type="button" value="Startseite" onclick="window.location.replace('Startseite.php')">
<input class="Button" type="submit" value="speichern">
</div>
</td>
</tr>
</table>
<input type="hidden" name="aktion" value="speichern">
</form>
</body>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 416497
Url: https://administrator.de/contentid/416497
Ausgedruckt am: 04.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Dantaros,
Übermittelt werden beim Absenden die Werte von Formularfeldern.
Per Skript musst Du also für Dein hidden-Feld den Wert auf den gewünschten Wert setzen.
Falls dieser Hinweis nicht ausreichend sein sollte, dann solltest Du Deinen Code auf einige wenige Zeilen eindampfen, bis nur noch die fragliche Funktionalität übrig bleibt.
Das hilft Dir bei der Fehlersuche und mir bei der Analyse.
Wenn Du Deinem Formular einen Namen gibst,
Gruß Frank
Übermittelt werden beim Absenden die Werte von Formularfeldern.
Per Skript musst Du also für Dein hidden-Feld den Wert auf den gewünschten Wert setzen.
document.getElementById("hbehalter").value = Behalter;
In Zeile 142 hast Du das auch geschrieben, aber es ist keiner function zugeordnet und ich sehe nicht wie oder wodurch diese Zeile aufgerufen wird, was aber notwendig ist und direkt vorm Absenden passieren sollte.Falls dieser Hinweis nicht ausreichend sein sollte, dann solltest Du Deinen Code auf einige wenige Zeilen eindampfen, bis nur noch die fragliche Funktionalität übrig bleibt.
Das hilft Dir bei der Fehlersuche und mir bei der Analyse.
Wenn Du Deinem Formular einen Namen gibst,
<form name="formularname" ...
dann kannst Du die Formularfelder auch einfach über die Namen ansprechen.document.formularname.feldname.value
getElementById ist aber nicht falsch.Gruß Frank