Seite neu laden mit änderung der id und einem variablen textfeld (aus einer php)

zg peripherals

Erfahrenes Mitglied
Hi wisemen,

ich möchte eine Seite erstellen, die sich beim neuladen verändert.
Sicher schwierig nachzuvollziehen, ich beschreibe es so gut wie möglich:

gehen wir von einer Seite aus, die wie folgt heisst: ~/seite.php
Gehen wir weiter von dem einfachsten Fall aus: Die Seite enthält nur ein variables Textfeld und zwei Links ("vor" und "zurück")

Versehen wir diese Seite nun noch mit einer ID-No.: zum Beispiel 0003

Jetzt möchte ich einem der beiden Links folgen. Das sollte dann so aussehen:

~/seite.php?id=-1
Ergebnis soll sein: Die Seite ~/seite.php wird erneut geladen, allerdings mit der ID 0002. Da ich die Links ja nicht ändern kann muss ich die ID-No erhöhen bzw. verringern, da eine dierekte Anwahl nicht möglich ist.

Wie realisiere ich das mit der -1? Ich kann auch gerne noch eine weitere PHP-Datei hinzufügen, die die aktuelle ID annimmt, erhöht bzw. verringert und sie dann wieder ausgibt.

Aber wofür benötige ich diese ID überhaupt?! Hier kommt das Textfeld ins Spiel: Das Textfeld soll die ID auslesen, und dann den zugeordneten Text aus einer weiteren PHP-Datei einlesen. Nennen wir diese Datei: ~/namen.php

Diese Datei enthält eine Liste mit ID's und den zugehörigen Namen.

Noch mal kurz in zwei Sätzen:

Ich öffne eine Seite (ID 0003) die ein variables Textfeld (Inhalt: Ich bin der Text für die Seite mit der 0003-ID) und zwei Links enthält. Ich folge einem der Links ("zurück") und komme erneut auf die Seite, allerdings zeigt mir das Textfeld jetzt den Inhalt, der für diese Seite (ID 0002) bestimmt ist - die Texte erhält das Feld aus einer PHP die den Text der ID zuweist.

Wie kann ich so etwas am besten und einfachsten realisieren?
Hinweis: ich brauch in fast allen Punkten Hilfe!

ich danke euch jetzt schonmal für eure Hilfe!

zg
 
nehmen wir mal an, dass Du die Seite mit einem Übergabeparameter aufrufst (in dem Fall die ID), dann hast Du diesen Parameter als Variable in Deinem Script, kannst damit rechnen, und kannst sie auch in link einbauen.

Beispiel:

Aufruf: ~/seite.php?id=0003

und dann im Script:

PHP:
echo "diese Seite hat die ID: " . $id;
echo "<a href='seite.php?id=" . $id-1 . "'>zurück</a>";
echo "<a href='seite.php?id=" . $id+1 . "'>vor</a>";

Soweit zum Prinzip. Probleme wirst Du allerdings mit den führenden Nullen bekommen. Benutz also lieber ID=3 anstatt ID=0003 ;-)


Dunsti
 
Und um das ganze noch um den Aspekt der Konformität (ab PHP 4.2.0) zu erweitern benutze $_REQUEST['id'] anstelle von $id. ;)
 
Aber wenn ich die ID in der Seite speichere, dann ist sie ja für alle Anwender gleich??! Wenn die leute also gleichzeitig surfen, überschneidet sich dass dann nicht? Ich meine, wenn jeder der die Seite aufruft sich selber vorarbeitet, dann sollte es doch funktionieren? (wird doch dann im Cache gespeichert, oder?)

Und denkt bitte an das variable Textfeld! Wie lese ich das ein, und wie kann ich die ID überhaupt am Anfang festlegen?

Noch was anderes. wenn ich 0001 erreicht habe, und dann auf "zurück" klicke, wie komm ich dann auf 0099 (z.B.) - also das letzt Bild?

danke schonmal
 
keine Angst, Variablen gelten immer nur innerhalb eines Scripts. Wenn zwei User das gleiche Script aufrufen werden daraus automatisch zwei Scripts, die auch als verschiedene behandelt werden. Die Variable $id aus Script 1 und die aus Script 2 beeinflussen sich nicht!!! (is etwas komisch beschrieben, aber ich denke, Du weisst, wie ich das meine) ;-)

Das mit dem "Überlauf" ist auch denkbar einfach:

PHP:
echo "diese Seite hat die ID: " . $id;
if ($id<=1) {
   $id_zurueck=99;
} else {
   $id_zurueck=$id-1;
}
echo "<a href='seite.php?id=" . $id_zurueck . "'>zurück</a>";
if ($id>=99) {
   $id_weiter=1;
} else {
   $id_weiter=$id+1;
}
echo "<a href='seite.php?id=" . $id_weiter . "'>vor</a>";

verständlich? ;-)


Dunsti

PS: bevor sich sonic wieder "beschwert", so geht's mit weniger tippen:

PHP:
echo "diese Seite hat die ID: " . $id;
$id_zurueck = $id<=1?99:$id-1;
echo "<a href='seite.php?id=" . $id_zurueck . "'>zurück</a>";
$id_weiter = $id>=99?1:$id+1;
echo "<a href='seite.php?id=" . $id_weiter . "'>vor</a>";
 
Zuletzt bearbeitet:
ok vielen Dank Dunsti und den anderen.

Allerdings bitte ich noch kurz zu erklären, wie das mit dem Textfeld funktioniert! (Und bitte noch einen Satz zu dem ersten Wert(ID) - wo ich den implementieren muss!:()

Zu dem Skript. kann ich das auch zu normalen html-Inhalten in die Seite einfügen, und wenn ja dann wo!

danke!

zg
 
1.) den ersten Wert gibst Du in dem Link auf die Seite mit:

z.B. in der index.html:

Code:
<a href="seite.php?id=1">Link</a>

2.) Wo kommen denn die Inhalte für die Textfelder her? aus einer Datenbank? Dann wäre das z.B. so:
PHP:
bis hierher HTML
<?php
mysql_connect($server,$user,$passwort);
mysql_select_db($datenbank);
$abfrage=mysql_query("SELECT * FROM `texte` WHERE id='$id'");
$text = mysql_fetch_array($ergebnis);
?>
<input type="text" value="<?php echo $text['textspalte']; ?>">

Damit wäre auch geklärt, wie Du das in eine HTML-Datei einbindest. Immer wenn PHP-Code kommt, diesen mit <?php und ?> markieren (an Anfang und Ende) und natürlich die Datei mit der Endung .PHP speichern.


Dunsti
 
wäre sicher ne Möglichkeit, aber kann ich den Textfeld-Inhalt nicht aus ner PHP-Datei einlesen. Also so, dass das Textfeld beim laden der Seite mit der ID bei ner PHP anfragt, und ihn da ausliest:

1= Hallo
2= Dunsti
3= wie
4= geht
5= es
6= dir

(blödes Beispiel) aber so ungefähr hatte ich mir das vorgestellt!

Geht das? .... geht das generell mit ner PHP?

(hoffentlich)

danke
 
ich kann die Frage net so richtig verstehen ... was steht denn in dieser PHP-Datei, aus der Du die Werte für das Textfeld lesen willst drin???


Dunsti
 
das weiss ich selbst nicht so genau (jedenfalls was das Skript betrifft). Aber was den "Inhalt" betrifft, da wollte ich halt eine Liste mit ID`s und den zugehörigen Texten haben.

Textfeld wird geladen -> läd die PHP: (z.B.:) ~/text.php?text=1

1 ist der Wert der ID.

1=Text für Seite 1
2= Text für Seite 2
usw.....

Das Textfeld übernimmt dann den Text hinter dem Gleichzeichen


Ich hoffe jetzt ist klar was ich meine!

zg
 
Zurück