• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Klappmenü hält Zustand nicht

Status
Für weitere Antworten geschlossen.

Partymaster18e

Neues Mitglied
Hallo @ all,

Ich hab efolgendes Problem.

Ich möchte eine Liste in einem Klappmenü unterbringen, was auch problemlos funktioniert.
So aber diese Liste aktualisiert sich alle 5 Sekunden via Seiten Reload.
Standartmäsig ist das Menü eingeklappt, wenn ich es ausklappe und die site reloadet klappt es sich wieder ein was es aber nicht soll, sondern es soll sich den letzten "Zustand" merken.
Also wenn es offen war soll es offen bleiben oder wenn es zu war halt zu bleiben.

Hier mal mein Code:

Code:
<html>
<head>
<title>Inhalte ausgeben</title>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="refresh" content="5">
</head>
<body>

<a href="#" onClick="if (document.getElementById('subnavi_1').style.display == 'inline') {
document.getElementById('subnavi_1').style.display = 'none';
} else {
document.getElementById('subnavi_1').style.display = 'inline';
}">Feuerhausen</a>
<div id="subnavi_1" style="display: none;">
<br>
<?php

include("../admin/conf/config.php");

$tabelle ="Wache_Feuerhausen";

$dbverbindung = mysql_connect ($server, $benutzer, $passwort);

$dbanfrage = "SELECT * from $tabelle";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

print ("<h2>Feuerhausen</h2>");

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print ("

<table>
  <tr>
     <td><B>Fahrzeug</b></td> 
     <td>$ausgabe[fahrtzeug]</td>
  </tr> 
  <tr>
     <td><b>Funkkennung</b></td> 
     <td>$ausgabe[funkkennung]</td>
  </tr> 
  <tr>
     <td><b>Status</b></td> 
     <td>$ausgabe[status]</td>
  </tr>
</table>
<hr>
");
 }

mysql_close ()

?>
</div>
<br>
<a href="#" onClick="if (document.getElementById('subnavi_2').style.display == 'inline') {
document.getElementById('subnavi_2').style.display = 'none';
} else {
document.getElementById('subnavi_2').style.display = 'inline';
}">Wehrhausen</a>
<div id="subnavi_2" style="display: none;">
<br>
<?php

include("../admin/conf/config.php");

$tabelle ="Wache_Wehrhausen";

$dbverbindung = mysql_connect ($server, $benutzer, $passwort);

$dbanfrage = "SELECT * from $tabelle";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

print ("<h2>Wehrhausen</h2>");

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print ("

<table>
  <tr>
     <td><B>Fahrzeug</b></td> 
     <td>$ausgabe[fahrtzeug]</td>
  </tr> 
  <tr>
     <td><b>Funkkennung</b></td> 
     <td>$ausgabe[funkkennung]</td>
  </tr> 
  <tr>
     <td><b>Status</b></td> 
     <td>$ausgabe[status]</td>
  </tr>
</table>
<hr>
");
 }

mysql_close ()

?>
</div>

</body>
</html>
ODER: Ist es vieleicht möglich statt die site zu reloaden nur den inhalt der Navigation zu reloaden ?

Jetzt werden bestimmt einige sagen Realiesier doch das ganze mit ajax oder so aber ich mus sagen ich hab mir ajax mal angesehn und als ich dann festgestellt habe das ich nur um die 2 Wörter "Hallo Welt" auf den Monitor zu bringen fast ne Halbe DinA4 Seite scripten muss hab ich mir das gleich wieder aussem Kopf geschlagen.

Wäre für jede Hilfe dankbar die mich ein wenig weiterbringt.
 
Zuletzt bearbeitet:
Werbung:
Ok dann haben wa da schon das nächtste Problem oder besser gesagt 2. ^^

Das 1. hört auf den namen Cookie und das 2. wie mach ich das =/

Nicht jeder aktzeptiert cookies aber darauf brauchen wa nicht eingehn *THEMA ende* :razz:

Wie bekomm ich das mit dem Cookie den hin ?

Sorry aber ich hab mich mit den Keksen noch nicht beschäftigt ^^

Gruß Olli
 
Werbung:
Das 1. hört auf den namen Cookie und das 2. wie mach ich das =/

Nicht jeder aktzeptiert cookies aber darauf brauchen wa nicht eingehn *THEMA ende* :razz:
Da du bei dir eh PHP benutzt, könntest du die Aktion über einer SessionID speichern. Dies ist Serverseitig. Funktioniert dann also auch, wenn cookies nicht vom Besucher erlaubt werden.

Mal nebennei gefragt: Welcher Sinn steht dahinter, eine Seite alle 5 Sekunden neu zu laden? Zumal dies ebenfals Clientseitig stattfindet, womit es dann auch zu Problemen kommen kann.

Mfg
 
Da du bei dir eh PHP benutzt, könntest du die Aktion über einer SessionID speichern. Dies ist Serverseitig. Funktioniert dann also auch, wenn cookies nicht vom Besucher erlaubt werden.

Mal nebennei gefragt: Welcher Sinn steht dahinter, eine Seite alle 5 Sekunden neu zu laden? Zumal dies ebenfals Clientseitig stattfindet, womit es dann auch zu Problemen kommen kann.

Mfg

Der sin ist das sich der wert welcher in der Tabelle steht jederzeit ändern kann.
Eigendlich hatte ich vor das ganze sekündlich zu machen allerdings fand ich das selber etwas übertrieben ^^
Andere möglichkeiten kenn ich nicht ausser der reload funktion im meta tag.
Kla ist das etwas Client lastig aber da muss ich / user halt durch.
Die site ist eh nur für bestimmte personen erreichbar in der regel max 5-6 leute daher sehe ich das nicht als problem an wäre es jetzt eine homepage welche für jeden ersichtlich ist wo täglich 1000-2000 leute drauf gehn wäre dort keine reload funktion vorhanden das kannste glauben xD

@Crash

Danke dir für den Link.
Werd es mir im laufe des Tages mal durchlesen.

Gruß Olli
 
Werbung:
Ich hätte eventuell einen Tipp, wie man das Ganze umgeht.
Nutze Ajax :D
Der Vorteil ist, dass nicht die ganze Seite neu geladen wird, sondern nur ein Teil der Seite neu geladen wird. Du musst eine PHP Seite machen, die als Ausgabe den print macht den du sonst auch immer machst.
Dieser wird dann über Ajax abgeholt. Und dann könntest du den Inhalt in dein Menü-Div (oder wo auch immer) ausgeben.
Vorraussetzung ist natürlich aktiviertes Javascript.
Es gibt inzwischen einige Frameworks, die einem die Ajax Abfragen recht leicht machen. (Die Frameworks sind auch leicht einzubinden)
Suche mal nach JQuery oder Prototype.
Es lohnt sich auf jeden Fall der Mehraufwand. Somit hat man dann nicht alle 5 Sekunden den kompletten Seiten Reload :)
Wenn du dann noch Fragen bezüglich Ajax hast, kannst du sie ja hier im Forum stellen
 
^^ Ich sehe schon ich werde wohl nicht um Ajax herum kommen **Gedanklicher Vermerk: Scheiße :razz:**
Naja ok dann werd ich mich wohl doch mal mit dem ganzen auseinandersetzen auch wen ich für HALLO WELT ne halbe Din A4 Seite schreiebn muss :)
THX an alle Poster =)

Gruß Olli
 
Wenn du mittels AJAX die Daten übermittelst, müssen diese Daten dem Clienten ja zugeordnet werden. Die passiert auch wieder über einen Cookie (auch bei einer Session). Warum also umständlich und nicht gleich einen Cookie einsetzen?
 
Werbung:
Naja ok dann werd ich mich wohl doch mal mit dem ganzen auseinandersetzen auch wen ich für HALLO WELT ne halbe Din A4 Seite schreiebn muss :)

Wie gesgat. Nehm dir nen schönes Framework hier mal ein Beispiel mit JQuery

Script-Teil der HTML Seite
HTML:
<script>
// Alles machen wenn Dokument geladen wurde
window.onload = function() {
  $.ajax({
     type: "POST",
     url: "holeDaten.php",
     data: "name=Joe",
     success: function(msg){
       alert("mein Ergebnis: "+msg);
     }
   });
};
</script>
PHP Seite
HTML:
<?php
$name = $_REQUEST['name'];
if($name == "Joe") {
  echo "Oh mein Gott. Es ist Joe";
} else {
  echo "Da ist wieder dieser Typ";
}

Das was du auf der PHP Seite ausgibst. Also direkt HTML oder wie in meinem Beispiel das echo, wird bei Ajax die msg das heisst: alert("mein Ergebnis: "+msg); würde also:
"mein Ergebnis: Oh mein Gott. Es ist Joe" ausgeben
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben