Es gibt zahlreiche spezifische Ausprägungsmuster von Eingabedaten ( asynchron gesendetet Formulardaten ), die zu einer " n => 1 - Struktur" gehören und die einen gemeinsamen "Kern von kybernetischen Ähnlichkeitsmustern" aufweisen. So sind z.B. in gewisser Weise ähnlich:
- das elektronische Sammeln, Verwalten, Präsentieren von Evaluations-Antworten von Gruppen, - das elektronische Sammeln, Verwalten, Präsentieren Terminabstimmungen bei verstreuten Teilnehmern, - das elektronische Sammeln, Verwalten, Präsentieren von Arbeitszeit-Konto bei externen Montagearbeiten, - das elektronische Sammeln, Verwalten, Präsentieren von Tuniermeldungen bei regionalen Teilnehmern, - das elektronische Sammeln, Verwalten, Präsentieren von Störungsmeldungen von Kunden, - das elektronische Sammeln, Verwalten, Präsentieren von Karteikarten und Notizen von Nutzern, - das elektronische Sammeln, Verwalten, Präsentieren von Bemerkungen, Anmerkungen und Ideen von Kunden, - das elektronische Sammeln, Verwalten, Präsentieren von Bewertungen der Kundenzufriedenheit, - das elektronische Sammeln, Verwalten, Präsentieren von Bewertungen einer Web-Seite, usw.
Hier bei diese Aufgabe geht es um ein leichtgewichtiges, Benutzer-zentriertes Informationsmanagement, das als eine Client-Server-Lösung zu entwickeln, zu erstellen und zu testen ist. Natürlich gibt es "Supernationale Cloud-Lösungsangebote", die ohne User-spzifizischer Regionalität auskommen. Die Lösung soll leichtgewichtig, einfach, universell, besonders robust und mit geringstem zusätzlichen Aufwand für alle obigen Fälle von "elektronischem Sammeln, Verwalten, Präsentieren von ..." nutzbar sein. Plagiate sind "out". Auf Cookies wird verzichtet.
Optional soll die erstellte Lösung eine einfache End-zu-End-Verschlüsselung ( auch der Meta-Daten ) haben und auch von Laien an die eigenen Bedürfnisse angepaßt werden können, ohne daß dazu komplexe Developer-Entwicklungstools erforderlich sind.
Bei Vorträgen ( Fachvorträge, Seminar, Live-Veranstaltungen ) kann es sinnvoll sein, die Zuhörer direkt und anonym einzubeziehen, indem Ideen, Meinungen, Wertungen online "on the fly" erfolgen ( Smartphon-App ). Es gibt zahlreiche Fragemuster. Die zusammengeführten Antworten werden sofort präsentiert und diskutiert, wie z.B.
WER soll es machen ( Akteure )? WAS soll gemacht werden ( Inhalte )? WARUM soll es gemacht werden ( Begründungen )? WOZU soll es gemacht werden ( Zielsetzungen )? WANN, WO soll es gemacht werden ( Zeitplanung, Organisation )? WIE soll es gemacht werden ( Methoden des Vorhabens )?
Beispiel: Zur Vorbereitung eines Softwareproduktes finden Besprechungen mit unterschiedlichen Gruppen statt. Bei jeder Besprechung sollen die Teilnehmer ( Smartphon ) Anwenderwünsche, Ideen, Software-Lastenheft/Pflichtenheft, usw. anonym und on passon einbringen. Bereits während der Sitzung sollen die Anwenderwünsche, Ideen, usw. präsentiert und diskutiert werden. Diese fertige "self-made"-Lösung soll das "elektronische Sammeln, Verwalten, Präsentieren von ..." ermöglichen.
Für die Projekt-Umsetzung kann dieses Beispiel Entwickler-Hinweise geben. Die SRS ( de.wikipedia, Software Requirements Specification ) umfassen Lastenheft ( Customer-Requirement = C-Requirement ) wie Pflichtenheft ( Development-Requirement = D-Requirement ). Siehe z.B. .pdf"-Folien ( uni-paderborn.de, Qualitaet-Pflichtenheft )
Einige mögliche Beispiele für Roh-Text-Muster sind.
Mikro-Struktur für Weblinks: *Weblink: *Thema: *Datum: 2013-11-22 10:36:00| *Url: *Notizen: Mikro-Struktur für Tagebuch-Einträge: *Tagebuch-Eintrag: *Datum: 2013-11-22 10:36:20| *Bezug: *Notiz: *Weblinks: |
Mikro-Struktur für Kartei-Karten: *Kartei-Karte: *Thema: *Datum: 2013-11-22 10:36:10| *Quellen: *Freitext: *Zitate: *Stichwörter: Mikro-Struktur für Kurznotizen: *Kurznotiz: *Thema: *Datum: 2013-11-22 10:35:48| *Notizen: |
Lastenheft: (Auftragsnehmer, DIN 69905): *Produkt: (kurz-Name, Lang-Name) *Datum: *Ziel: (Was soll erreicht werden?) *Einsatz: (Produkt-Zielg ruppen) *Kontexte (Produkt-Ressourcen, Zeitraster) *Funktionen: (aus Anwendersicht) *Design: (Benutzeroberfläche, Anwenderwünsche) *Produktdaten: (persist. Daten, System-Zustände) *Leistungen: (Produkt-Performance, Mengengerüst) *Qualitätsanforderungen: (Erweiterbarkeit) |
Software-Pflichtenheft: (IEEE 830): *Pflichtenheft: (IEEE 830) *Datum: *Produkt: (kurz-Name, Lang-Name) *Ausgangssituation: (akt. Stand, Einsatz) *Dokumentation: (akt. Stand, Projekt-Glossar/Index) *Anforderungen: (aktueller Prozeß, Abnahmekriterien) *Stabilität: (akt. Fehlerverhalten, Erweiterbarkeit) *Fortgang (Ideen, Prozeß-Zeitraster) |
Siehe AJAX from Scratch ( Vergleich zwischen Formular und AJAX ) und ggf. ergänzend Lade HTML-Fragment mit AJAX
Zu AJAX gehört das ECMAScript-Objekt new XMLHttpRequest(), dessen Nutzung etwa wie folgt ist:
var xhr; try {xhr = new XMLHttpRequest();} catch (try_ms) { try {xhr = new ActiveXObject("Msxml2.XMLHTTP");} catch (try_ms_old) { try {xhr = new ActiveXObject("Microsoft.XMLHTTP");} catch (failed) { xhr = false; }}} } if (!xhr) { alert("Senden unmöglich\nKein Internet/XMLHttpRequest"); return; } xhr.open("POST", "my.php", true); // AJAX-post-submit xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); var str = 'KEY1=' + MYSTR1 + '&JSONkey=' + JSON.stringify(obj); xhr.send(str); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { // lediglich zum 1. Testen alert(xhr.responseText); // oder that.form.LOCATION.value = xhr.responseText; //was dann? if (o.post_reset) {that.form.reset(); } //was dann? if (o.post_htm) { bib.url_to_frame(o.frame_name, obj.urlpost); } }
Wurden der var str = 'KEY1='+MYSTR1 + '&JSONkey='+JSON.stringify(obj); mit xhr.send(str) an my.php gesendet, so wird bei einer php-Antwort ( echo-Ausgabe ) die Browser-Callback-Funktion xhr.onreadystatechange = function () {...) aufgerufen. Der Antwort-String beifndet sich in xhr.responseText
Zeige php-Code an.
Diese Demo ist noch fehlerhaft und verwendet MDI-AJAX-Demo ( siehe dort den Quelltext ). Die MDI-AJAX-Demo enthält ein Formaular und ( verdeckt ) den AJAX-Aufruf top.bib.form_check(that, o ) von index.htm.
In der Seite aufgabe-10-2013-start.htm werden bei button-Klick
onclick="check_form(this, {})" die Formularelemente mit Hilfe von that.form.ELMENTNAME
clientseitig geprüft.
Beim Senden der Demo-Formlardaten mit AJAX sammelt werden Rumpf von form_check() {...}
die Formulardaten ( Strings ) und weitere Daten im obj = { ... }
gesammelt.
Das Objekt obj wird mit
Mit JSONstr = JSON.stringify(obj)
in einen JSONstr gewandelt.
Es ist günstig, eine zusätzliche hidden-Textarea <textarea name="LOCATION" zu verwenden, die den gesamten JSONstr vor dem Senden zunächst in LOCATION schreibt (debug-Kontrolle) und ggf. that.for.LOCATION.value sendet.
Die aufgerufen my.php-Datei wandelt $JSONstr mit
$obj = json_decode($JSONstr,true)
in ein PHP-Array-Objekt.
Abhängig vom Anwendungsfall werden ( nach dem Speichern der übermittelten Daten ) auf der Client-Seite unterschiedliche Reaktionen gebraucht.
Mit Hilfe von
http://www.cilie.org/mmk/prakt-2013/aufgabe-10-2013-start.php?show_php_code
soll der PHP-Quelltext von my.php angezeigt werden.
Wie geht das?
Bitte an den Anfang der php-Datei ...
<?php if ( isset($_GET['show_php_code'] ) ) { die( highlight_file(__FILE__,1) ); } // anzeigen von php-Quelltext ... ?>
Optional soll die erstellte Lösung eine einfache End-zu-End-Verschlüsselung ( auch der Meta-Daten ) haben und auch von Laien an die eigenen Bedürfnisse angepaßt werden können, ohne daß dazu komplexe Developer-Entwicklungstools erforderlich sind.
Viel Freude bei der Ausarbeitung!
Letzter Abgabetermin
1.So 2014 um 12.00 Uhr