Secound-Monitorview realisieren

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Secound-Monitorview realisieren

    Hallo zusammen,

    ich kann mir gut vorstellen, dass die Überschrift jetzt ein wenig verwirrt oder Fragezeichen in den Augen auftauchen lässt, deswegen erkläre ich mich gleich:

    Ich hab folgendes vor:

    Zur Zeit arbeite ich ja an eine rAuswertungssoftware für Turniere des Bogensports. DOch man soll mit deiser Software nicht nur die Ergebnisse auswerten können, sondern auch noch einiges mehr. Und zu einer Funktion wäre ein folgendes nicht ganz unpraktisch.

    Mal als grobes Beispiel: Zu einem Turnier werden ja überlicherweiße Startgebühren verlangt. Zudem wird gerne vereinsweiße angetreten. Dann gibt es natürlich auch noch Starter- und Ergebnislisten. Doch zum Grundgedanken zu ersterem Punkt:
    (Und bevor jetzt die Frage kommt, warum ich sowas überhaupt webbassiert mach und nicht mit C oder sowas: Ich kann nur websprach und es soll Systemunabhängig sein (also man zieht sich z. B. einfach Xampp und dann läuft's auf jedem Gerät).)

    Zur Startnummernausgabe kommt gerne einer vom Verein und holt für alle die Startnummern ab. Hierfür könnte dann ein zweiter Monitor aufgestellt werden, an dem er Holer dann sehen kann, wer alles gemeldet ist, mit welchem Startplatz und welcher Klasse, und wer noch Startgebühr zahlen muss.

    Das ganze hab ich mir jetzt in etwa so vorgestellt:

    Es wird eben ein zweiter Monitor aufgestellt, in diesem ein neues Broswerfenster geöffnet und die Seite, nennen wir sie mal "secound_monitor.html", localhost/secound_monitor.html aufgerufen. Standardmäßig soll diese am Anfang schwarz sein. Alle zwei Sekunden wird überprüft, ob sich in der Datei "sec_moni.txt" eine Zeile - kann ein Zahlentyp, ein Link oder ein Wort oder was, jetzt noch egal, sein - geändert hat. Hat sie das, so wird per Ajax die Seite, die der zeile anspricht, aufgerufen. Dafür hab ich mir vorgestellt, einfach neue Dateien zu schreiben, auf denen einfach nur die Daten angezeigt werden, die derjenige sehen soll und diese dann eben in die secound_monitor.html angezeigt wird. Ändert man die entsprechende Zeile in "sec_moni.txt" wieder, soll das Broswerfenster wieder schwarz sein.

    Alternativ zu dem schwarzen Bild soll noch zur Auswahl stehen, dass eine Bildergallerie z. B. der vergangenen Turniere angezeigt wird, die Startliste oder wenn bereits eine Runde gelaufen ist, die Ergebnisliste angezeigt wird. Das, glaube ich, wäre dann noch eher der einfachere Teil und sollte so zu realisieren sein?

    Gut, dann jetzt zum anderem Teil:

    Eine zweite Datei, nennen wir sie "sec_moni_config.php" soll die Einstellungen enthalten, ob diese Funktion überhaupt aktiviert ist und was Alternativ zum schwarzen Fenster angezeigt werden könnte: Ob eine Bildergallerie, wenn ja, welche Bilder, Startliste, Ergebnisliste, usw. angezeigt wird. Okay, das sollte auch noch vergleichsweise einfach sein.

    Dann kommt für mich zum Schluss das schwierigste:

    Dies soll ein "fliegendes Bedientool" sein, welches auf jeder Seite (nicht im Fenster der Seite "secound_monitor.html" !!!) angezeigt werden soll. Standardmäßig soll dieses am rechten Bildschirmrand in der Mitte sein. Klickt man mit der Maus auf einen Button, soll es auf die linke Seite wechseln. Und andersrum.
    Desweiteren soll ein button dafür vorhanden sein, dass die aktuelle Seite, die man gerade vor sich hat, im Anzeigemodus für andere, also die extra angelegte Seite, dann in secound_monitor.html angezeigt wird. Dazu wird dann geschaut, welche Zeichenkombination diese Seite hat und dann diese in die Datei sec_moni.txt eingetragen. Ist dies geschehen, soll dieser Button verschwinden und dafür einer erscheinen, dass der schwarze Bildschirm wieder angezeigt wird.
    Dann das gleich nochmal so ähnlich: Ein Drop-Down-Menü in dem alle zum anzeigen möglichen Seiten aufgeführt sind und mit einem Pfeil dahinter dann die dafür vorhandene Zeichenkombination in die sec_moni.txt einschreibe.

    Dann wäre noch ein schönes Schmankerl: Ist anstatt des schwarzen Fensters eine Diashow eingestellt und wird diese Aufgrund der Anzeige einer bestimmten Seite unterbrochen, so soll nach "schwarz Schalten" die Diashow an der selben Stelle wieder weiter laufen.

    So, jetzt noch, wobei ich die größten Hilfen brauchen werde:

    • der Counter, dass alle 2 Sekunden die "sec_moni.txt" überprüft wird
    • das schwebene Tool mit der Seitenänderung
    • bei der Diashow
    • einen Ideenanstups, wie man in JS das schreiben von Dateien realisiert


    Was noch wichtig ist: Die aktuell aufgerufene Seite soll von durch die Bedienung des Tools nicht beeinflusst werden!

    Ich hoffe, ihr versteht, was ich will und könnt mir ein wenig helfen^^

    LG

    Fipsi
  • Also einfach wird das nicht^^
    besonders der Empfang (mobiles Internet) kann ich Hallen und co extrem schlecht sein. Daher würde ich dir lieber eine Fat-Client Anwendung Offline empfehlen. Wenn du doch PHP und co machen willst:

    der Counter, dass alle 2 Sekunden die "sec_moni.txt" überprüft wird

    Source Code

    1. // ruft eine funktion "time" aller 3 Sek auf
    2. myTimer = setInterval(function(){time()},3000);

    Ansonsten brauchst du noch einen AJAX Call zu einem PHP-Skript
    Beispiel findest du hier


    das schwebene Tool mit der Seitenänderung
    Echt hart bei einer Browser-Anwendung. Aber wenn du es versuchen willst, gilt auch hier AJAX und Javascript. Das folgende Skript öffnet ein Fenster und man kann es begrenzt verändern.

    Source Code

    1. var winURL = 'Test.html';
    2. var winName = 'win1';
    3. var winSize = 'width=660,height=620,scrollbars=yes';
    4. var ref = window.open(winURL, winName, winSize);

    einen Ideenanstups, wie man in JS das schreiben von Dateien realisiert
    Persönlich rate ich dir dringend davon ab, mit JS Dateien zu öffnen und zu schreiben. Aber wenn du es versuchen willst....
  • Hey,

    also ich hab jetzt bereits schon ein wenig angefangen.. also die secound_monitor.html hab ich soweit eigentlich an sich schon fertig gebracht:

    Source Code

    1. <html>
    2. <head>
    3. <meta http-equiv="pragma" content="no-cache" />
    4. <title>Secound Monitor-View - Archery Results</title>
    5. <style type="text/css">
    6. </style>
    7. <script type="text/javascript" src="templates/jquery-1.9.1.min.js"></script>
    8. <script type="text/javascript">
    9. $("document").ready(function(){
    10. var info;
    11. info = new Array();
    12. var ausgabe;
    13. var status_diashow = 0;
    14. var gallery;
    15. var bilder;
    16. setInterval(loadInfo, 1500);
    17. function loadInfo() {
    18. var http = null;
    19. if (window.XMLHttpRequest) {
    20. http = new XMLHttpRequest();
    21. } else if (window.ActiveXObject) {
    22. http = new ActiveXObject("Microsoft.XMLHTTP");
    23. }
    24. if (http != null) {
    25. http.open("GET", "templates/sec_moni.txt", true);
    26. http.onreadystatechange = function() {
    27. if (http.readyState == 4) {
    28. ausgabe = http.responseText.split(";");
    29. var anzeige = ausgabe[0].split("_");
    30. gallery = ausgabe[1];
    31. //alert (gallery);
    32. gallery = gallery.split(" | ");
    33. bilder = gallery.length; //Anzahl der Bilder
    34. if ((info[0] != anzeige[0]) || (info[1] != anzeige[1])) {
    35. info[0] = anzeige[0];
    36. info[1] = anzeige[1];
    37. if (info[0] == 1) {
    38. document.bgColor = "black";
    39. document.getElementById("anzeige").innerHTML = "";
    40. status_diashow = 0;
    41. } else if ((info[0] >= 2) && (info[0] <= 4)) {
    42. document.bgColor = "white";
    43. loadSide(info[0],info[1]);
    44. status_diashow = 0;
    45. } else if (info[0] == 5) {
    46. document.bgColor = "black";
    47. status_diashow = 1;
    48. }
    49. }
    50. }
    51. };
    52. http.send(null);
    53. }
    54. }
    55. function loadSide(side,id) {
    56. var urrl = "templates/sec_moni.php?";
    57. if (side == 2) {
    58. urrl += "show=startliste&grp="+id;
    59. } else if (side == 3) {
    60. urrl += "show=ergebnisse&grp="+id;
    61. } else if (side == 4) {
    62. urrl += "show=vereinsliste&id="+id;
    63. } else if (side == 5) {
    64. urrl += "show=gallery";
    65. }
    66. $.ajax({type: "GET",
    67. url: urrl,
    68. async: true,
    69. success: function(data){
    70. document.getElementById("anzeige").innerHTML = data;
    71. }
    72. });
    73. }
    74. var akt = 0; //aktuell angezeigtes Bild
    75. var ID = 0; //ID des letzten Timeouts
    76. var delay = 5000; //Verzögerung in Millisekunden
    77. setInterval(function ()
    78. {
    79. if (status_diashow == 1)
    80. {
    81. document.getElementById("anzeige").innerHTML = "<img src="gallery/"+gallery[akt]+"" />";
    82. akt = akt+1;
    83. if (akt == bilder) {
    84. akt = 0; }
    85. }
    86. }, delay);
    87. });
    88. </script>
    89. </head>
    90. <body>
    91. <div id="anzeige">
    92. Secound Monitor-View
    93. </div>
    94. </body>
    95. </html>
    Display All


    Ich hab nur ab und an das Problem, dass er nicht sofort, wenn er die sec_moni.txt neu geladen und die Werte sich geändert haben, auf für die neuen Werte die jeweilige Seite lädt.
    Macht er teilweise erst nach dem manchmal sogar erst 15 mal neu laden. Deswegen hab ich extra die Zeile "<meta http-equiv="pragma" content="no-cache" />" hinzugefügt: es ist zwar besser geworden, aber trotzdem besteht das Problem immer noch. Vorallem: jeder länger mal ein Wert fest stand, desto länger dauert es, bis er den neuen wieder verarbeitet. Liegt das an meinem Skript?

    Mit dem Tool hab ich bisher noch nichts probiert, werde aber späterstens in den zwei Weihnachtswochen damit anfangen, wenn ich dann Urlaub hab :D
    Allerdings werde ich wohl wahrscheinlich auch bei der Dateibeschreibung auf Ajax und php zurückgreifen. Denn wie das funktioniert, weiß ich schon.^^

    Und zu dem Problem mit dem Internet:
    Das soll alles nur auf localhost laufen. Für unser eigenes kommendes Turnier hab ich mir das folgendermaßen vorgestellt:
    Im Auswertungsraum bau ich meinen Pc auf, auf dem auch Xampp läuft. Den schließ ich an einen Wlan-Router an - welcher nicht mit dem Internet verbunden ist - und stellt mir einen Laptop oben bei der Startnummernausgabe mit dem zweiten Monitor hin. Auf dem zweiten Monitor soll eben die Seite secound_monitor.html angezeigt werden, während ich am Laptop selber die "arbeite".Ist die Startnummernausgabe vorbei, wird oben der Laptop und Bildschirm abgeschaltet, und ich arbeite am PC weiter.

    Aber die Wlan-Verbindung ist auch nicht nur für meinen Laptop gedacht: In der Halle werd ich aushänge mit den Wlan-Daten ausschreiben, damit die Schützen auf einer extra bereitgestellten Datei die Startlisten und Ergebnisse abrufen können. Das einzige, was mich an letzterem bisher noch bisschen nervt, ist, dass ich wohl ohne Domain, sondern nur die IP-Adresse aushängen kann.
  • stealth_axg wrote:

    Tollkühne Konstruktion, was du da vor hast... aber könnte funktionieren^^
    Über Sicherheit, WLAN Reichweite, Lastverteilung und co hast du dir bestimmt schon gedanken gemacht oder?



    Was soll denn das groß passieren?

    Glaube kaum das im WLAN auch Internet aktiv ist.. soll ja nur für spezielle Inhalte sein..

    Außerdem glaube ich kaum das dort so eine rießige Last auftritt?! Sind glaube ich kaum mehrere hundert Menschen oder?
  • stealth_axg wrote:

    Tollkühne Konstruktion, was du da vor hast... aber könnte funktionieren^^


    Tut es schon mehr oder weniger^^ Von man davon absieht, dass mir der Cache nen Strich durch die Rechnung macht und das Bedientool nicht so recht will.

    stealth_axg wrote:

    Über Sicherheit,


    Wenn die Monitorfunktion aktiviert wurde - es wird noch explizit darauf hingewiesen, das ohne des System nicht für den Zugriff anderer Geräte freigegeben sein sollte - dann wird ein Login verlangt, dass man an die Seiten kommt, um Daten zu verändern. Ohne Login sind nur die Startliste und Ergebnislisten einzusehen. Und wie schon von Exi gesagt, zumindest auf unserem Turnier, besteht in diesem Netzwerk keine Internetanbindung.

    stealth_axg wrote:

    WLAN Reichweite,


    Ja, Gedanken darüber schon gemacht. Ob mein Plan allerdings so aufgeht, weiß ich noch nicht ganz sicher. Der Plan war folgender: Mein PC steht mitsamt Router in einem Nebenraum. Die Halle hat etwa eine Länge von 80 Metern. Sollte normalerweiße doch einwandfrei funktionieren? Jedoch hab ich auch noch eingeplant, an den Router ein Power-/D-Lan-Modul (oder wie die Teile, dass das Netzwek über den normalen Stromkreis läuft heißt) zu hängen und auf der anderen Seite ebenfalls ein Power-/D-Lan-Modul als weiterer Wlan-Sender. Ob auch noch oben in der Eingangshalle einer hinkommt, weiß ich noch nicht. Bzw. ob diese überhaupt reinkommen, dafür müsste ich erst schon, wo ich die Teile auftreiben kann. Wenn das so nicht klappt, war ein anderer Gedanke, den Router in der Mitte der Halle ein einen abgeschlossenen verglasten Raum zu stellen.

    stealth_axg wrote:

    Lastverteilung


    Dazu muss ich jetzt eingestehen, ich bin mir nicht sicher, ob der Router dafür reicht. Und weiß jetzt ehrlich gesagt auch nicht, wo ich Daten finde, mit denen ich auch als Laie was anfangen kann. Es handelt sich um einen D-Link 802.11g Wireless Router Model DI-524. Ich bin am überlegen, ob ich schaun soll, ob ich von jemanden aus dem Verein für die zwei Tage einen besseren auftreiben - der eben genannte ist schon ein wenig älter - und den dann verwenden kann.
    Zudem sind alle Seiten, die für die anderen Turnierteilnehmer öffentlich sind, sehr klein gehalten.
    Bei meinem PC hab ich keinerlei bedenken, dass er in die Knie gehen könnte.
    Und zu den Nutzern: Im Wechsel der beiden Teilnehmergruppen sind dann etwa 250 Leute anwesend. Da diese aber jedoch zum Großteil aus der älteren Generation stammen (das soll jetzt kein Vorurteil sein, sondern ist eine Tatsache! Um dies behaupten zu können, hab ich bereits genug auf Turnieren gehört!!), die die neuere Technik eher ablehnen, anstatt diese Möglichkeiten zu nutzen, schätze ich, dass nicht mehr als 75 Leute dieses Angebot nutzen werden (Ich werde am Ende schaun, wieviele Zugriffe ich hatte, kanns ja euch dann bei Bedarf mitteilen).
    (P.S.: Da der Bogensport eine Randsportart ist, ist leider nicht viel mit 3 Begleitpersonen und vielen Zuschauern. Grob gerundet kommt auf einen Schützen eine bis eineinhalb weitere Personen.)



    Was meinst du mit co? :3
  • So.... einige Zeit ist vergangen und einiges hab ich auf die Reihe gebracht... aber noch nicht alles.

    Hier mal der aktuelle Code:

    secound_monitor.html

    Source Code

    1. <html>
    2. <head>
    3. <meta http-equiv="pragma" content="no-cache" />
    4. <title>Secound Monitor-View - Archery Results</title>
    5. <style type="text/css">
    6. h1 {
    7. text-align:center;
    8. }
    9. #laufschrift_1 {
    10. position:absolute;
    11. top:0px;
    12. height:50px;
    13. font-size:30pt;
    14. z-index:999;
    15. }
    16. #anzeige {
    17. position:absolute;
    18. top:50px;
    19. width:99%;
    20. }
    21. #laufschrift_2 {
    22. position:absolute;
    23. bottom:0px;
    24. height:50px;
    25. font-size:30pt;
    26. z-index:100;
    27. display:none;
    28. }
    29. </style>
    30. <script type="text/javascript" src="templates/jquery-1.9.1.min.js"></script>
    31. <script type="text/javascript">
    32. var ausgabe;
    33. window.onload = function(){
    34. var step = 125;
    35. var old_posi;
    36. window.setInterval(function(){
    37. window.scrollBy(0, step);
    38. if (old_posi == window.pageYOffset)
    39. {
    40. window.scrollTo(0, 0);
    41. }
    42. old_posi = window.pageYOffset;
    43. document.getElementById("laufschrift_1").style = "top:"+window.pageYOffset+"px;";
    44. document.getElementById("laufschrift_2").style = "top:"+(window.pageYOffset + self.innerHeight - 50)+"px;";
    45. }, 3000);
    46. };
    47. $("document").ready(function(){
    48. var info;
    49. var info = new Array();
    50. var ausgabe;
    51. var status_diashow = 0;
    52. var gallery;
    53. var bilder;
    54. var laufschrift = Array();
    55. setInterval(loadInfo, 1000);
    56. function loadInfo() {
    57. var http = null;
    58. if (window.XMLHttpRequest) {
    59. http = new XMLHttpRequest();
    60. } else if (window.ActiveXObject) {
    61. http = new ActiveXObject("Microsoft.XMLHTTP");
    62. }
    63. if (http != null) {
    64. http.open("GET", "templates/sec_moni.txt", true);
    65. http.onreadystatechange = function() {
    66. if (http.readyState == 4) {
    67. ausgabe = http.responseText.split("-;-");
    68. var anzeige = ausgabe[0].split("_");
    69. gallery = ausgabe[1];
    70. gallery = gallery.split(" | ");
    71. bilder = gallery.length;
    72. if ((info[0] != anzeige[0]) || (info[1] != anzeige[1])) {
    73. info = Array();
    74. info[0] = anzeige[0];
    75. info[1] = anzeige[1];
    76. if (info[0] == 1) {
    77. document.bgColor = "black";
    78. document.getElementById("anzeige").innerHTML = "";
    79. status_diashow = 0;
    80. } else if ((info[0] >= 2) && (info[0] <= 4)) {
    81. document.bgColor = "white";
    82. loadSide(info[0],info[1]);
    83. status_diashow = 0;
    84. } else if (info[0] == 5) {
    85. document.bgColor = "black";
    86. status_diashow = 1;
    87. }
    88. }
    89. var laufschrift_check = ausgabe[2].split(" | ");
    90. if (laufschrift_check[0] == 1)
    91. {
    92. laufschrift[0] = laufschrift_check[0];
    93. laufschrift[1] = laufschrift_check[1];
    94. }
    95. else
    96. {
    97. laufschrift[0] = 0;
    98. }
    99. }
    100. };
    101. http.send(null);
    102. }
    103. }
    104. function loadSide(side,id) {
    105. var urrl = "templates/sec_moni.php?";
    106. if (side == 2) {
    107. urrl += "show=startliste&grp="+id;
    108. } else if (side == 3) {
    109. urrl += "show=ergebnisse";
    110. } else if (side == 4) {
    111. urrl += "show=vereinsliste&id="+id;
    112. } else if (side == 5) {
    113. urrl += "show=gallery";
    114. }
    115. $.ajax({type: "GET",
    116. url: urrl,
    117. async: true,
    118. success: function(data){
    119. document.getElementById("anzeige").innerHTML = data;
    120. }
    121. });
    122. }
    123. setInterval(delete_cache,5000);
    124. function delete_cache()
    125. {
    126. ausgabe = {0:0, 1:0};
    127. info = {0:0, 1:0};
    128. }
    129. var akt = 0;
    130. setInterval(function ()
    131. {
    132. if (status_diashow == 1)
    133. {
    134. var maxlength = screen.availHeight - 150;
    135. var maxwidth = screen.availWidth - 50;
    136. var left = (screen.availWidth - maxwidth) * 20;
    137. var top = (screen.availHeight - maxlength) / 2;
    138. document.getElementById("anzeige").innerHTML = "<img align="center" style="align:center; max-height:"+maxlength+"px; max-width:"+maxwidth+"px;" src="gallery/"+gallery[akt]+"" />";
    139. document.getElementById("anzeige").style = "left:"+left+"px;";
    140. document.getElementById("anzeige").style = "top:"+top+"px;";
    141. alert ("<img align="center" style="align:center; max-height:"+maxlength+"px; max-width:"+maxwidth+"px;" src="gallery/"+gallery[akt]+"" />");
    142. akt = akt+1;
    143. if (akt == bilder) {
    144. akt = 0; }
    145. }
    146. }, 5000);
    147. setInterval(function ()
    148. {
    149. var lauf_1 = document.getElementById("laufschrift_1");
    150. var lauf_2 = document.getElementById("laufschrift_2");
    151. if (laufschrift[0] == 1)
    152. {
    153. lauf_1.style.display = "block";
    154. lauf_1.style.background = "white";
    155. lauf_1.innerHTML = laufschrift[1];
    156. lauf_2.style.display = "none";
    157. lauf_2.style.background = "white";
    158. lauf_2.innerHTML = laufschrift[1];
    159. }
    160. else
    161. {
    162. lauf_1.style.display = "none";
    163. lauf_2.style.display = "none";
    164. }
    165. },1500);
    166. });
    167. </script>
    168. </head>
    169. <body>
    170. <div id="anzeige" style="text-align:center;">
    171. <center>Seite wird geladen</center>
    172. </div>
    173. <marquee id="laufschrift_1">
    174. </marquee>
    175. <marquee id="laufschrift_2">
    176. </marquee>
    177. </body>
    178. </html>
    Display All


    sec_moni.txt

    Source Code

    1. 1-;-
    2. 426119_489600291076722_799607138_n.jpg | 545237_475225322514219_1441410815_n.jpg | Foto0515.jpg | skype_1.png-;-
    3. 0 | Lauftext-;-


    sec_moni_tool.js

    Source Code

    1. $("document").ready(function(){
    2. var sec_moni_tool = document.getElementById("sec_moni_tool");
    3. var position_right = screen.availWidth - 225;
    4. var position_left = 25;
    5. sec_moni_tool.style = "left:"+position_right+"px";
    6. var http = null;
    7. if (window.XMLHttpRequest) {
    8. http = new XMLHttpRequest();
    9. } else if (window.ActiveXObject) {
    10. http = new ActiveXObject("Microsoft.XMLHTTP");
    11. }
    12. if (http != null) {
    13. http.open("GET", "templates/sec_moni_tool.php", true);
    14. http.onreadystatechange = function() {
    15. if (http.readyState == 4) {
    16. var ausgabe = http.responseText;
    17. sec_moni_tool.innerHTML = ausgabe;
    18. }
    19. };
    20. http.send(null);
    21. }
    22. });
    23. function chance_to() {
    24. var show = document.getElementById("show_side").value;
    25. var http = null;
    26. if (window.XMLHttpRequest) {
    27. http = new XMLHttpRequest();
    28. } else if (window.ActiveXObject) {
    29. http = new ActiveXObject("Microsoft.XMLHTTP");
    30. }
    31. if (http != null) {
    32. http.open("GET", "sec_moni_adm.php?change=side&to="+show, true);
    33. http.onreadystatechange = function() {
    34. if (http.readyState == 4) {
    35. var ausgabe = http.responseText;
    36. show.split("_");
    37. if (ausgabe == 1)
    38. {
    39. alert("Info:\r\nAnzeige der Seite wurde erfolgreich geschalten.");
    40. }
    41. else
    42. {
    43. alert("Info:\r\nEs ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.");
    44. }
    45. }
    46. };
    47. http.send(null);
    48. }
    49. }
    Display All


    sec_moni_tool.php

    Source Code

    1. <?php
    2. error_reporting(0);
    3. session_start();
    4. include("templates.php");
    5. $template = new templates();
    6. $datei_open = fopen("sec_moni.txt", "r");
    7. $inhalt = "";
    8. while ($datei = fgets($datei_open, 4096))
    9. {
    10. $inhalt .= $datei;
    11. }
    12. fclose($datei_open);
    13. $datei_inhalt = explode("-;-",$inhalt);
    14. echo "<center><u>Secound Monitor View-Bedientool</u></center>\r\n";
    15. echo "<br /><br />\r\n";
    16. echo "Aktuell angezeigte Seite:\r\n";
    17. echo "<select name="show_side" id="show_side">\r\n";
    18. echo "<option value="1"".(($datei_inhalt[0] == "1")?" selected":"").">Schwarz</option>\r\n";
    19. echo "<option disabled>Startlisten</option>\r\n";
    20. $ergebnis = $template->mysqli->query("SELECT id, name FROM gruppen WHERE praefix = '".$template->data_turnier->praefix."'");
    21. while ($row = $ergebnis->fetch_object())
    22. {
    23. echo "<option value="2_".$row->id.""".(($datei_inhalt[0] == "2_".$row->id)?" selected":"")."> - ".$row->name."</option>\r\n";
    24. }
    25. echo "<option value="3"".(($datei_inhalt[0] == "3")?" selected":"").">Ergebnisse</option>\r\n";
    26. echo "<option disabled>Teilnehmervereine</option>\r\n";
    27. $ergebnis = $template->mysqli->query("SELECT id, name FROM verein");
    28. while ($row = $ergebnis->fetch_object())
    29. {
    30. echo "<option value="4_".$row->id.""".(($datei_inhalt[0] == "4_".$row->id)?" selected":"")."> - ".$row->name."</option>\r\n";
    31. }
    32. echo "<option value="5"".(($datei_inhalt[0] == "5")?" selected":"").">Bildergalerie</option>\r\n";
    33. echo "</select>\r\n";
    34. echo "<br />\r\n";
    35. echo "<a href="javascript:chance_to()" title="Diese Seite anzeigen">Anzeigen</a>\r\n";
    36. ?>
    Display All


    sec_moni_tool.css

    Source Code

    1. <style type="text/css">
    2. html>body #sec_moni_tool {
    3. position:fixed;
    4. }
    5. #sec_moni_tool {
    6. position:absolute;
    7. z-index:900;
    8. top:150px;
    9. width:175px;
    10. height:500px;
    11. padding:5px;
    12. border:1px solid black;
    13. background-color:#e3e3e3;
    14. }
    15. </style>
    Display All


    Die Datei sec_moni.php hab ich jetzt mal weggelassen, da diese für die Funktion irrelevant ist, da sie ja nur HTML-Code ausgibt.

    Mein Problem ist jetzt noch das Bedientool (sec_moni_tool.php/sec_moni_tool.js) :

    Wie krieg ich das hin, dass das Ding die Seite wechselt? Ich hatte schonmal einen Ansatz, damit hat das Teil aber nur nach links rüber und nicht mehr zurück gewechselt. Kann mir damit bitte jemand helfen?

    LG

    Fipsi