Sven Rautenberg: Daten definiert plazieren

Beitrag lesen

Guten Tag Sven

Moin!

Um ganz sicher zugehen, demnach sind alle EventsEffekte insbesondere der Hyperlink in erster Linie eine Aktivität vom Browser. Also auch ein Bild in Symbolgrösse um per Klick das Original abzurufen ist eine reine Adressangelegenheit wie Hyperlink.

Ja, genau. Die Aktivität geht vom Surfer aus. Der sagt seinem Browser, was er haben will. Und der Browser besorgt es dann vom Server.

Ist somit mein Projekt geplatzt, wenn ich die Seiten nicht geschäftsmässig sondern freizeitlich gestalten will? Oder gibt es noch ein Oder?

Das würde ich nicht sagen. Es hängt von den näheren Umständen ab.

Grundsätzlich: Wenn du einen "Psycho-Test" machen willst, mit einer oder mehreren Seiten, und aufgrund der Antworten eines von mehreren Resultaten präsentieren: Das geht komplett ohne Serverlogik auch nur mit HTML und Javascript.

Sobald du aber irgendwas speichern willst (und sei es nur ein einzelnes Byte), muß der Server mehr können als nur HTML-Seiten auszuliefern. Und da kommen eben Programmiersprachen wie ASP ins Spiel. Wenn du ASP auf deinem Server benutzen kannst, ist alles garkein Problem. Wenn nicht - dann bleibt dir immerhin noch der Psychotest ohne Auswertung auf dem Server.

Ein Skript schickt die erste Seite mit Formular.
Unter einem Formular verstehst du sicher die Bottem, Kästchen, Zellen und Textrahmen.

Genau. Aber nicht nur. Formulare sind aber in der Regel das, was nicht nur Daten vom Server abruft, sondern auch selber welche schickt, und dann muß der Server reagieren.

Was ist aber mit dem Skript, sind es die *.js , *.css oder die cookies? Kann ich Ausnahmsweise von einem versteckten Notizzettel sprechen? Wenn ja wären wir wieder beim Browser angelangt, der mit der Bedingung klick (auf Bild) eine Notiz auf den Zettel schreibt.

Du kannst den lokalen Notizzettel "Cookie" benutzen. Oder den lokalen Notizzettel "URL-Parameter". Beide funktionieren sowohl mit Javascript als auch mit server-seitigen Skripten.

Was etwa so aussehen könnte:

Sub sex_onclick
open/goto newdocument   bezw.Skript
write="45"   evtl.  writeln
End Sub

Hier hast du vermutlich einen Denkfehler: Dein kleines Programm steckt entweder in einem serverseitigen Skript oder in einer ausgelieferten HTML-Seite also Javascript.

Fall 1: Serverseitiges Skript.
Der Befehl "open/goto newdokument" funktioniert auf dem Server nicht. Der Browser geht zu neuen Dokumenten, nicht der Server. Das ist das, was ich schon vorher versuchte zu erklären: Der Browser holt eine Seite vom Server, schickt Formulardaten an ein Skript und erwartet die nächste Seite, und so weiter.

Außerdem kennt der Server kein "Klicken". Das macht der User bei seinem Browser mit der Maus. :)

Fall 2: Clientseitiges Skript (im Browser).
Man kann abfragen, ob der User irgendwo hingeklickt hat, dein Unterprogramm würde also angefangen. Allerdings: Wenn sofort die neue Seite angefordert wird, dann ist in diesem Moment auch der Quelltext für das weitere Vorgehen weg. Das Programm zieht sich also selbst den Boden unter den Füßen weg. Und dann wird's nichts mehr mit dem Schreiben des Wertes an eine bestimmte Position.

Ich mache mal ein Beispiel, wie es normalerweise funktioniert:

DATEI1 (ein simples HTML-Formular):
-------------
<form action="script2.php" method=post">
<input type="text" name="kommentar">
<input type="submit" value="Abschicken">
</form>
-------------
Dort kann man was eingeben und abschicken.

script2.php (in diesem Fall ein PHP-Skript):
-------------
<?php
print "<p>Sie haben '$kommentar' geschrieben!</p>";
?>
-------------

Stell dir vor und hinter den Ausschnitten einfach gültiges HTML vor, also mindestens mal <HTML><HEAD><TITLE>Titel</TITLE></HEAD><BODY>...hierderAusschnitt...</BODY></HTML>

Wie du siehst: Das Formular macht eigentlich garnichts. Es ist einfach so da. Man muß dort auch nicht reagieren, wenn es abgeschickt wird. Das weiß der Server dadurch, daß der Browser von ihm das PHP-Skript abfordert, und dabei ein paar Daten sendet, die der Server dem Skript übergibt, und die das Skript dann weiterverwenden kann (in diesem Beispiel: Die Daten einfach wieder ausgibt).

Daten nur wieder ausgeben ist natürlich auf Dauer langweilig, alles andere wäre dort ebenso möglich, also Datenbank etc.

Und nirgendwo ist bislang Javascript! Braucht man einfach nicht. Du programmierst also nur den Server. Der muß anhand der übermittelten Daten die richtige Seite erstellen (z.B. mit einer Reihe Print-Befehlen), und der Browser zeigt den "Ausdruck" dann wieder an.

Das dürfte dir vermutlich auch noch Schwierigkeiten bereiten:
Wenn du in ASP oder PHP programmierst, dann stehen HTML-Code und Programmcode gut durchmischt in der Datei. Sie kommen aber getrennt zur Wirkung - erst ASP/PHP, dann im Browser HTML.

Beispiel:
<html>
<head>
  <title>Ein Titel</title>
</head>
<body>
  <h1>Danke fürs Ausfüllen</h1>
  <? hier die Befehle fürs Speichern
     noch mehr Befehle...
     und zum Schluß die Ausgabe:
     print "Sie haben $kommentar eingeben";
  ?>
</body>
</html>

Sieht so aus, als würde der Code direkt im Browser ausgeführt. Ist aber nicht. In Wirklichkeit wird auch das HTML drumherum "gedruckt":

<?
print "<html>";
print "<head>";
print "  <title>Ein Titel</title>";
print "</head>";
print "<body>";
print "  <h1>Danke fürs Ausfüllen</h1>";
hier die Befehle fürs Speichern
noch mehr Befehle...
und zum Schluß die Ausgabe:
print "Sie haben $kommentar eingeben";
print "</body>";
print "</html>";
?>

Und der Ausdruck ist dann eine HTML-Seite, die zum Browser gesendet wird und dort funktionieren muß.

Du darfst es dir gerne so vorstellen: Jedes serverseitige Skript erzeugt eine Seite, die man auf dem Drucker ausdruckt, und endet dann. Der User liest die Seite, und ruft dann eine neue Seite ab. Also wieder ein neuer Ausdruck. :)

Sag doch jetzt einfach, du hast es verstanden. :)

- Sven Rautenberg