Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   HTML Formular senden / nicht senden (https://www.tweakpc.de/forum/programmiersprachen/108214-html-formular-senden-nicht-senden.html)

Kodak 01.10.2017 15:49

HTML Formular senden / nicht senden
 
Moin :-D

Ich bastel gerade an einem kleinen Projekt und bin da auf ein "Problem" gestoßen, für das ich noch keine wirkliche Lösung gefunden habe.

Ich habe ein Formular, das ein paar Elemente beinhaltet, die mit Werten gefüllt sind bzw. sein müssen. Unter anderem ein Textfeld und ein Dropdown Menü. Zum Absenden des Formulars wird normaler HTML Button benutzt.

Zu meiner Frage:
Kann ich irgendwie nach dem Klick auf den Button das Formular überprüfen und dann per Rückgabe (true/false) entscheiden ob das Formular gesendet wird oder einfach nichts passiert?

Zur Verfügung stehen mir PHP und JavaScript/jQuery.

Robert 02.10.2017 13:34

AW: HTML Formular senden / nicht senden
 
Wie sollte "nichts" passieren?

sobald du drückst wird ja das nächste php script aufgerufen und das kann dann ja prüfen ob daten angekommen sind.

Wenn du die eingabefelder überprüfen willst ob die leer sind oder nicht, das geht recht einfach mit javascript.

[URL="https://wiki.selfhtml.org/wiki/Museum/Formulareingaben_%C3%BCberpr%C3%BCfen"]https://wiki.selfhtml.org/wiki/Museum/Formulareingaben_%C3%BCberpr%C3%BCfen[/URL]

Neuerdings kann man einzelne felder auch mit html5 validieren.

[url]https://wiki.selfhtml.org/wiki/HTML/Tutorials/Formulareingaben_mit_HTML5_validieren[/url]

Exit 02.10.2017 13:51

AW: HTML Formular senden / nicht senden
 
Bitte beachte!

All Input is Evil - vor allem im Netz.

Auf Deutsch - im PHP auf dem Web-Server musst Du unbedingt den Inhalt des Formulars kontrollieren.

Die Clientseitige Validierung ist optional und dient der "User Experience" (scheiB Marketing Denglisch) ;-)

Mit jQuery sollte sowas eigentlich Problemlos gehen. Schau mal hier: [url]https://stackoverflow.com/questions/28123236/validate-form-before-submit-jquery[/url]

Kodak 03.10.2017 18:32

AW: HTML Formular senden / nicht senden
 
@Robert und Exit
Erstmal Danke für die Links, das man mit HTML5 validieren kann wusste ich noch nicht ^^ Ist aber interessant zu wissen.
Ich hab mir jetzt erstmal so beholfen:

[php]
$(document).ready(function() {
$("#myButton").click(function() {
var display = $("#myDropDown option:selected").text();

if(display == "") {
$("#myDivTag").fadeIn().delay(3000).fadeOut();
return false;
}
else {
return true;
}
});
});
[/php]

Durch das return false bekomme ich genau das Verhalten das ich brauche ^^ Wenn ich jetzt den Button klicke und im Dropdown ist nix ausgewählt passiert auch einfach nichts, außer natürlich das für die 3 Sekunden eine kleine Fehlernachricht eingeblendet wird.

Jetzt habe ich noch eine Frage, aber vorher versuche ich mal schnell die Situation zu erklären, dann ist es leichter nachzuvollziehen ^^

Es geht hier um einen Server (Raspberry Pi 3) der einen Webserver + MySQL Datenbank bereitstellt und ein eigenes WLAN erzeugt (hostapd + dnsmasq). Die Clients die sich hier verbinden sind auch wieder Raspberry Pi's die mit einem 7" Touchscreen angeschlossen sind.
Die Website, die auf dem Server gehostet ist, dient dazu Texte zu verfassen und dann an die jeweiligen Displays zu senden. Die zeigen dann diese Texte für eine angegebene Zeitspanne an.
Dieses oben erwähnte Dropdown Menü hält alle verfügbaren Displays zur Auswahl, das heisst wenn ich einen Text an ein Display anzeigen lassen will, muss ich mir da eins aussuchen. Daher darf bzw. sollte das Dropdown Menü nicht leer sein. Das funktioniert jetzt soweit.

Aber:
Gibt es eine Möglichkeit, nach dem Submit (also wenn die Seite neu geladen wurde nach dem Buttonklick) eine Funktion auszuführen? Also im Grunde den Code von oben nochmal, nur mit anderen Elementen ^^ Gibt's da irgendein Event oder sowas das ich mir da abgreifen kann? Denn wenn ein Text erfolgreich übertragen wurde, steht das in der Datenbank. Und mit dieser Information möchte ich dem Benutzer dann mitteilen dass es geklappt hat.

@Exit
All Input Is Evil - Ja, das hat man uns wirklich eingetrichtert im Studium :iosys: In der Hinsicht bedarf es noch ein bisschen Arbeit, ich versuche gerade erstmal ein funktionierendes Grundkonstrukt zu erschaffen :-D Das ist aber definitiv ein wichtiger Punkt, also außer Acht lassen werde ich das nicht.

Exit 03.10.2017 22:02

AW: HTML Formular senden / nicht senden
 
Pauschal ist eine Webseite erstmal Zustandslos - bedeutet, jeder Seitenbesuch stellt eine neue Verbindung her.

Aus dem Grund müsstest Du in einem Reload Dir einen "Hint" hinterlegen, dass Du jetzt was besonderes willst.

z.B.: meinesteite.php?success=1

oder sowas in der Art.

Jetzt könntest Du mit Javascript (Query ist auch nix anderes als Javascript) den Querystring kontrollieren.

[code]
[COLOR=#000000][COLOR=#007700]$([/COLOR][COLOR=#0000BB]document[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]ready[/COLOR][COLOR=#007700](function() {
// hier den code rein
}[/COLOR][/COLOR][/code]

Schau mal hier - eventuell findest Du ja das passende zum parsen des Querystrings.

[url]https://stackoverflow.com/questions/4656843/jquery-get-querystring-from-url[/url][COLOR="Silver"]

[SIZE=1]---------- Post hinzugefügt 22:02 ---------- Vorheriger Post von at 21:56 ----------[/SIZE]

[/COLOR]Alternativ könntest Du auch überlegen, ob Du gleich auf AJAX umstellst. Dabei wird nicht die komplette Seite neu geladen - sondern nur Teile dynamisch ausgetauscht.

[url]https://www.html-seminar.de/ajax-einfuehrung.htm[/url]

Dabei bekommt man deutlich mehr Kontrolle, und prinzipiell ähnelt es deutlich mehr einer Client Anwendung. Aber ist natürlich kein muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.