Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Javascript Variable per Hiddenformular an DB

Mitglied: Dantaros

Dantaros (Level 1) - Jetzt verbinden

11.02.2019 um 16:02 Uhr, 181 Aufrufe, 2 Kommentare

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:

01.
<?php
02.
	require 'inc/db.php';
03.
	$db->set_charset('utf8');
04.

05.
	if (isset($_POST['aktion']) and $_POST['aktion']=='speichern') {
06.
		$Schicht = "";
07.
		if (isset($_POST['Schicht'])) {
08.
			$Schicht = trim($_POST['Schicht']);
09.
		}
10.
		$Mitarbeiternummer = "";
11.
		if (isset($_POST['Mitarbeiternummer'])) {
12.
			$Mitarbeiternummer = trim($_POST['Mitarbeiternummer']);
13.
		}
14.
		$hbehalter = "";
15.
		if (isset($_POST['hbehalter'])) {
16.
			$hbehalter = trim($_POST['hbehalter']);
17.
		}
18.
		$erstellt = date("Y-m-d H:i:s");
19.
		if ( $Schicht != '' or $Mitarbeiternummer != '' or $hbehalter != '')
20.
		{
21.
			// speichern
22.
			$einfuegen = $db->prepare("
23.
					INSERT INTO test (Schicht, Mitarbeiternummer, Behaelter, erstellt) 
24.
					VALUES (?, ?, ?, NOW())
25.
					");
26.
			$einfuegen->bind_param('sss', $Schicht, $Mitarbeiternummer, $hbehalter);
27.
			if ($einfuegen->execute()) {
28.
				header('Location: Gespeichert.php?aktion=feedbackgespeichert');
29.
				die();
30.
				echo "<h1>gespeichert</h1>";
31.
			}
32.
		}   
33.
	}
34.
	if (isset($_GET['aktion']) and $_GET['aktion']=='feedbackgespeichert') {
35.
		echo '<p class="feedbackerfolg">Datensatz wurde gespeichert</p>';
36.
	}
37.
?>
38.
<script>
39.
Behalter = 0;
40.
</script>
41.
<style>
42.
.Button {
43.
	background-color:#bfbfbf;
44.
	-moz-border-radius:28px;
45.
	-webkit-border-radius:28px;
46.
	border-radius:28px;
47.
	border:1px solid #ffffff;
48.
	display:inline-block;
49.
	cursor:pointer;
50.
	color:#000000;
51.
	font-family:Arial;
52.
	font-size:17px;
53.
	padding:5px 8px;
54.
	text-decoration:none;
55.
}
56.
.Button:hover {
57.
	background-color:#8f8f8f;
58.
}
59.
.Button:active {
60.
	position:relative;
61.
	top:1px;
62.
.left {
63.
	text-align: left
64.
}
65.
</style>
66.

67.
<head>
68.

69.
</head>
70.

71.
<body style="font-family: Arial;">
72.
	<table width="100%">
73.
		<tr>
74.
			<td	style="background: #009eb8"; height="50em" width="100%">
75.
			<?php
76.
			echo '<img src="logo.png" alt="Logo">'
77.
			?>
78.
			</td>
79.
		</tr>
80.
	</table>
81.
	<form action="" method="post">
82.
		<table width="100%">
83.
			<tr>
84.
				<td>
85.
					<label for="Schicht">Schicht:
86.
						<select id="Schicht" name="Schicht" size="1">
87.
							<option></option>
88.
							<option>Fr&uuml;h</option>
89.
							<option>Sp&auml;t</option>
90.
							<option>Nacht</option>
91.
						</select>
92.
					</label>
93.
				</td>
94.
				<td>
95.
					<label for="Mitarbeiternummer">
96.
						Mitarbeiternummer:
97.
					</label>
98.
					<input id="Mitarbeiternummer" name="Mitarbeiternummer" type="text" class="left">
99.
				</td>
100.
			</tr>
101.
		</table>
102.
		<table width="100%">
103.
		<tr>
104.
			<!-- hier sind die Buttons die einen Wert ändern-->
105.
				<td style="text-align: center; ">
106.
					<p>Anzahl Beh&auml;lter:</p>
107.
					<input type="hidden" name="hbehalter" id="hbehalter" />
108.
					<script type="text/javascript">
109.
						function plusclick1() {
110.
							Behalter += 1;
111.
							document.getElementById("Behalter").innerHTML = Behalter;
112.
						};
113.
					</script>
114.
					<button class="Button" type="button" onClick="plusclick1()">+1</button>
115.
					<script type="text/javascript">
116.
						function plus10click1() {
117.
							Behalter += 10;
118.
							document.getElementById("Behalter").innerHTML = Behalter;
119.
						};
120.
					</script>
121.
					<button class="Button" type="button" onClick="plus10click1()">+10</button>
122.
					<p> <a id="Behalter">0</a></p>
123.
					<script type="text/javascript">
124.
						function minusclick1() {
125.
						if (Behalter>0) {
126.
							Behalter -= 1;
127.
						}
128.
							document.getElementById("Behalter").innerHTML = Behalter;
129.
						};
130.
					</script>
131.
					<button class="Button" type="button" onClick="minusclick1()">-1</button>
132.
					<script type="text/javascript">
133.
						function minus10click1() {
134.
							Behalter -= 10;
135.
						if (Behalter<0) {
136.
							Behalter = 0;
137.
						}
138.
							document.getElementById("Behalter").innerHTML = Behalter;
139.
						};
140.
					</script>
141.
					<script>
142.
						document.getElementById("hbehalter").value = Behalter;
143.
					</script>
144.
					<button class="Button" type="button" onClick="minus10click1()">-10</button>
145.
				</td>
146.
			</tr>
147.
			<tr>
148.
				<td	style="background: #009eb8"; height="50em" width="100%" display: inline-block; >
149.
					<div>
150.
						<input class="Button" type="button" value="Startseite" onclick="window.location.replace('Startseite.php')">
151.
						<input class="Button" type="submit" value="speichern">
152.
					</div>
153.
				</td>
154.
			</tr>
155.
		</table>
156.
		<input type="hidden" name="aktion" value="speichern">
157.
	</form>
158.
</body>
Mitglied: Pedant
LÖSUNG 11.02.2019 um 21:05 Uhr
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.
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
Bitte warten ..
Mitglied: Dantaros
14.02.2019 um 09:31 Uhr
Sorry für die späte Reaktion von mir.

Vielen Dank für deinen Tipp.
Das mit dem Aufrufen "onsubmit" wusste ich noch nicht.
Nachdem ich das eingebaut habe, wurde der Wert wie gewünscht übergeben.

Gruß Daniel
Bitte warten ..
Ähnliche Inhalte
JavaScript
Livesuche in DB per Javascript
gelöst Frage von TheAlexJavaScript5 Kommentare

Hallo ich nerve heute noch einmal mit dingen die vllt schon 2000x gefragt wurden. Ich habe eine Datenbank in ...

JavaScript
Javascript Funktionen
gelöst Frage von agowa338JavaScript5 Kommentare

Hallo, habe gerade mehrere schönen Javascripte per mail bekommen und frage mich gerade, was eigentlich folgendes in einem Javascript ...

JavaScript
JavaScript Map
Frage von tobmesJavaScript7 Kommentare

Hi, ich bins mal wider :). Ich spiele immernoch mit JavaScript herum und hänge jetzt mal wieder. Ich habe ...

JavaScript
JavaScript hochladen
gelöst Frage von Patrick-ITJavaScript12 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer Seite, wo ich meine JavaScript Datei hochladen kann und die ...

Neue Wissensbeiträge
Windows Server

Zähe Update-Installation auf Windows Server 2016

Information von kgborn vor 1 TagWindows Server4 Kommentare

Mir sind in der Vergangenheit immer wieder Beschwerden von Admins unter die Augen gekommen, die sich über die doch ...

Humor (lol)
Turnschuhe per Firmware lahmlegen
Information von Henere vor 1 TagHumor (lol)8 Kommentare

Und was kommt demnächst ? Bekomme ich kein Klopapier mehr, weil der Spender einem DDOS unterliegt ? :-) Ich ...

Sicherheit

Sicherheitsrisiko in WinRAR und Co. durch Schwachstelle in UNACEV2.DLL

Information von kgborn vor 1 TagSicherheit

In der seit 2005 nicht mehr aktualisierten Bibliothek UNACEV2.DLL gibt es eine Path-Traversal-Schwachstelle. Diese ermöglicht es, bei ACE-Archiven Dateien ...

Internet

CDU Propaganda: Urheberschutz im Internet - Ende des digitalen Wild-West

Information von Frank vor 2 TagenInternet6 Kommentare

Hallo Administratoren, aus einem Kommentar heraus habe ich folgenden Beiträge von Herr Sven Schulze und Axel Voss (beide CDU ...

Heiß diskutierte Inhalte
Windows Tools
Dateiname Automatisch auf PDF Klartext oder als Barcode abdrucken
Frage von spongebob24Windows Tools29 Kommentare

Hallo Zusammen, habe eine tolle Anforderung bekommen. Ich sollte auf mehrere PDF Dateien Automatisch einen Stempel anbringen lassen. Toll ...

Internet
SDSL oder ADSL - Preis-Leistungs-Verhältnis
Frage von ZeppelinInternet22 Kommentare

Wehrte Community, der Unterschied dieser beiden Techniken ist recht einfach erklärt. Das S, steht für Synchron (Gleich) und das ...

Microsoft Office
MicroSoft und seine Lizenzen
Frage von ZeppelinMicrosoft Office19 Kommentare

Wehrte Community, ich wende mich an die Community weil MicroSoft dazu keine Stellung nehmen möchte. Ich öffne mein Web-Browser ...

Batch & Shell
Batchdatei für das Erstellen eines Unterordner bei Vorhandensein eines bestimmten Ordnernamens
Frage von KarstenPaBatch & Shell14 Kommentare

Hallo zusammen , ich suche nach einer Möglichkeit, ein freigegebenes Laufwerk nach einem bestimmten Ordnernamen ("Schriftverkehr") zu durchsuchen, und ...