![]() |
Wie übergebe ich Daten von einer Webseite zum Webserver?
Moin !
Ich habe einen TIdHTTPServer am laufen der eine kleine Webseite bereit stellt. Die Webseite sieht derzeit so aus:
Code:
Ziel soll es sein das der User auf der Webpage z.B. einen Button anklickt (oder was aus einer ComboBox selektiert) und das wiederum eine Aktion in der Anwendung (die den Server bereitstellt) auslöst.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><title>Webserver</title> <meta http-equiv="refresh" content="15"> </head> <body> <table border=0 cellSpacing=2 summary=Header cellPadding=0 width="100%" bgColor=#aaaaff> <tr> <td vAlign=top align=left>[b]<font size=+2 face=VERDANA,ARIAL,HELVETICA>Webserver</font>[/b]</td> <td align=right></td> </tr> <tr> <td>Device xxx</td> <td align=right>Site generated : 06:40:44 Auto Refresh Cycle : 15 </td> </tr> </table> <form> <input value=START type=submit name=START_RECORDING> <input value=STOP type=submit name=STOP_RECORDING> Channel : <select size=1 name=Channel> <option selected value=1>1</option> <option value=2>2</option> <option value=3>3</option> </select> Dataset : <input value=Submit type=submit name=Submit> <INPUT TYPE="button" onClick="history.go(0)" VALUE="Refresh"> </form> [img]mychart.jpg[/img] </body></html> Im Prinzip funktioniert das ja auch so wie ich es jetzt gelöst habe. Ich werte das RawHTTPCommand aus und starte danach aktionen. Nun hat das ganze aber ganz entscheidende Nachteile. Wenn ich z.B. den Button Submit anklicke, dann steht im Browser: In der Anwendung kann ich das auch auswerten mittels RawHTTPCommand. Nur die Adresszeile im Browser wird nicht wieder zurück gesetzt. Und da die Seite einen Autorefresh macht hat man beim nächsten Refresh ein Problem weil das Kommando nochmal gestartet würde. Ich habe das zwar ausmerzen können, aber in Summe muss ich sagen scheint mir meine Lösung wenig sinnvoll und auf dauer nicht wartbar. Könnte mir mal jemand beschreiben wie ihr Useraktionen von der Webseite (also Buttonclicks, Listenauswahl, Textfeld, ...) in eurem Webserver auswertet? Ich hatte ja gehofft das mit reinen HTML Mitteln lösen zu können, aber entweder mache ich da noch grundlegend was falsch, oder es gibt da eine gänzlich andere Lösung. :gruebel: |
Re: Wie übergebe ich Daten von einer Webseite zum Webserver?
Mal davon abgesehen, dass auf eine Seite mit Formularfeld kein Auto-Refresh gehört (Formular würde zurückgesetzt, wenn ich mich nicht irre - AJAX wäre aufwändiger aber angebrachter):
Du kannst so ne art Action-Seite machen: Die Formulare werden alle an diese gepostet, und die Action-Seite tut die Arbeit und leitet mit einem 302 Header wieder zurück ;) |
Re: Wie übergebe ich Daten von einer Webseite zum Webserver?
Moin !
Ich sollte dazu noch sagen das die Webseite mal ganz einfach entstanden ist. Das war nur etwas HTML mit einem Bild dazu. Und dort hat dann eben das mit dem Autorefresh ganz gut hingehauen. Ich würde auch gerne eine automatische Seiten aktualisierung drin haben, denn sonst wäre das in unserem Fall irgendwie witzlos. Weil unsere Software erzeugt Kurven und die werden alle paar Sekunden neu generiert. Wenn der User dann immer manuell Refresh anklicken müsste, dann wäre das etwas hinderlich ... |
Re: Wie übergebe ich Daten von einer Webseite zum Webserver?
Dann machs doch so:
Die hast eine Seite, an der ruhig mit ?XYZ Parameter dranhängen können. Man kann auf der Seite direkt mit einem Formular "sich selbst" aufrufen, um die Parameter zu ändern. Auf der Seite ist ein kleines Javascript, was immer alle 5 Sekunden (nur) das Bild neu lädt (und meinetwegen auch die Uhrzeit daneben schreibt) :) |
Re: Wie übergebe ich Daten von einer Webseite zum Webserver?
Moin !
Zitat:
Also kann ich da JavaScript hinterlegen !? Dazu konnte ich noch keine brauchbaren Infos finden. |
Re: Wie übergebe ich Daten von einer Webseite zum Webserver?
JacaScript ist clientseitig!
D.h.: Es wird vom Browser ausgeführt - idHTPPServer interessiert sich gar nicht dafür. |
Re: Wie übergebe ich Daten von einer Webseite zum Webserver?
Moin !
Zitat:
Ich habe jetzt eine einfache Lösung gefunden die mit HTTP POST auskommt. Aber die Java Script Variante werde ich auch mal antesten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz