# Automatisch aktualisieren?



## andyK (1. November 2003)

Hallo,


gibt es eine Funktion, um eine aktuelle Seite automatisch neu zu laden,
also automatisch zu aktualisieren?

Ich habe nämlich eine Seite, wo ich per link ein Bild von links nach
rechts, bzw. andersrum verschieben kann.
Nur das Problem ist, dass das Ergebnis erst zu sehen ist, wenn ich den
link nochmal drücke.
Das Ergebnis soll aber gleich zu sehen sein.

Hier mal die Funktion in groben zügen:


```
function getsite()
{
         if(($HTTP_GET_VARS["direction"])&&($HTTP_GET_VARS["menadm"]))
         {

	      switch($HTTP_GET_VARS["direction"])
	      {
		case "bla": ... break;
		case "blabla": ... break;
	      }
	 }

	   $inhalt = tplload("admin/change.tpl.html");
	   $inhalt = tplprint($inhalt, array("men_link" => $men_link,
	   				     "men_name" => $men_name,
					     ...));

	   return $inhalt;
	   $all->standard($inhalt);

	}
```

Funktionsweise:

1. Checken, ob im link "direction" steht und "menadm" aktiv (1) ist
2. Die Werte für "direction" mit dem switch vergleichen und entsprechende Anweisung ausführen
3. Template laden
4. Platzhalter im Template mit Werten füllen
5. $inhalt zurückgeben (und zwangsweise Funktion beenden *liegt hier vielleicht der Fehler?*
6. $inhalt an die Funktion "standard" übergeben, welche den Platzhalter eines anderen Templates füllt.

--------

Beim speichern habe ich ein ähnliches Problem. 
Dafür habe ich auch eine Funktion, die dann aufgerufen wird. Um gleich im Anschluss die aktualisierte
Seite anzuzeigen, habe ich (hoffentlich nur vorübergehend) den Code aus der Funktion "getsite()"
mit in die "savedata()"-Funktion eingefügt, weil einfach am Ende der Versuch, 
die Funktion "getsite()" aufzurufen, fehl schlug.

Fatal error: Call to undefined function: getsite() in C:\minixampp\htdocs\myhomepage\lib\a.class.general.php on line 184


----------



## TheLamer (1. November 2003)

*probiers mal*


```
echo "<html><head><meta http-equiv=\"refresh\" content=\"zahl in sec; URL=page.php\">
```


teste mal das das ist eine weiterleitung bei zahl in sec schreibsre einfach die zahl der sec rein die die page reloaden soll
bei page.php die page die du willst

Bitte
mfg $theLamer


----------



## andyK (1. November 2003)

Ich hab es getestet und er refresht auch fleißig. Nur meine Page ist 
template-basierend und den <head> hab ich nur in der Header Datei. Die eigentliche Page, die aktualisiert werden soll, ist ja eine andere Template datei,
und die page heißt nicht immer admin.php, sondern auch mal 
admin.php?modus=general usw.

Die admin.php alleine, ohne irgendwelche attribute zeigt nichts an.

Ich hab es auch schon mit der header(location: $php_self) methode probiert.
Nur da zeigt er mir die index.php an.


EDIT:
Zudem mit den Bildern kommt noch, dass ich damit auch die Position der Menüpunkte bestimmen kann.
Nur wenn das bei jedem Klick nicht aktualisiert wird, schiebt er den Eintrag niemals einen höher oder tiefer, da immer wieder der Eintrag, der auf dieser Position war, wieder dort hin wandert.


----------



## TheLamer (1. November 2003)

da must du bei variablen das doch glaube ich in '    ' setzen oder?


----------



## andyK (1. November 2003)

Hä? 

wie und wo meinst du jetzt?
meine Admin.php sieht so aus: (bisher) und die funktionen sind in einer 
anderen php datei.


```
<?php

require("lib/a.class.general.php");
require("lib/class.main.php");

$all = new all;


  switch($HTTP_GET_VARS["modus"])
  {
    case "general": $configure = new general; break;
    case "menue": $configure = new menue; break;
    
    

    default: $all->standard($configure->getsite());
  }



if($HTTP_GET_VARS["speichern"])
  $all->standard($configure->savedata());
else
  $all->standard($configure->getsite());

?>
```

Kann ich nich irgendwie die Funktion nach dem Speichen erneut aufrufen?


----------



## TheLamer (1. November 2003)

nee sorry ka 
funktionen habe ich immer soo gemacht


page1.php

```
if(action =="lol");
echo "blablabal";
```

und dann die links 
page2.php

```
echo "<a href=\"page1?action=lol\">blablaba aug page 1 ausgeben</a>"; echo "<br>";
```

jetzt sagt er nix wenn man page1 einfach aufruft erst wenn page1.php?action=lol
soo kanst das ja mit mehreren links machen


----------



## andyK (1. November 2003)

ich hab es hinbekommen.
Mit header("Location: admin.php?modus=menue");

Das hab ich in jede savedata und getsite Funktion geschrieben und den Modus
jeweils angepasst. 
Funktioniert einwandfrei. 

Trotzdem Danke für die rasche Antwort.


----------

