html-Link mit php-Variable verknüpfen

ich möchte folgendes realisieren.

Eine Webseite die als PHP-Dokument aufgerufen wird und aus einer Tabelle besteht, die die Seite anstelle von Frames in eine 6x3 Matrix aufteilt. Die Aufteilung der Webseite mit Hilfe der Tabellen ist kein Problem. Ich möchte nun aber in einer Spalte der Tabelle die als Hauptfenster fungieren soll, einen PHP-Bereich integrieren, der in etwa folgendermassen aussieht:

if ($auswahl==0) {
include(startseite.php);
}
elseif ($auswahl==1) {
include(Link1.php);
}
elseif ($auswahl==2) {
include(Link2.php);
}

usw.

die PHP-Variable $auswahl wird gleich nach dem <body>-Tag auf den Wert 0 gesetzt, so dass beim ersten Aufruf der Seite in der Spalte die als Hauptfenster fungiert die Startseite angezeigt wird.
Nun habe ich vor, dass Links, die in einer anderen Spalte zuvor als html-Code deklariert wurden, an diese Variable $auswahl gebunden werden und bei einem Klick auf den Link diese Variable einen entsprechenden Wert annimmt. Zum Beispiel beim Klick auf den Link2 nimmt $auswahl den Wert 2 an.

Meine Frage ist nun, wie kann ich dies syntaktisch umsetzen, so dass ein Link in html-Code beim anklicken mit der Maus einen Wert an eine Variable übergibt?

Und die andere Frage ist. Funktioniert das so mit dem include-Befehl oder überlagert der Browser die zu includenden Seiten einfach?

Ich habe dieses Problem deshalb, weil ich einen webbasierten Help-Desk entwickeln soll, der aber unter Netscape 4.0 funktionieren muss. Dummerweise versteht Netscape 4.0 aber keine innerFrames, so dass ich deshalb auf PHP zurückgreifen will um trotzdem eine Art innerFrame-Effekt erzeugen will. Leider bietet das BS Irix keine neueren Versionen mehr vom Netscape an und somit brauche ich da jetzt mal etwas Hilfe.

Habt ihr eine Idee wie das zu lösen ginge? Eventuell auch über Javascript?
 
Nun habe ich vor, dass Links, die in einer anderen Spalte zuvor als html-Code deklariert wurden, an diese Variable $auswahl gebunden werden und bei einem Klick auf den Link diese Variable einen entsprechenden Wert annimmt. Zum Beispiel beim Klick auf den Link2 nimmt $auswahl den Wert 2 an.
<a href="blub.php?auswahl=2">Link</a> !?
 
Original von LordCyrix
die PHP-Variable $auswahl wird gleich nach dem <body>-Tag auf den Wert 0 gesetzt, so dass beim ersten Aufruf der Seite in der Spalte die als Hauptfenster fungiert die
Danger! Wenn du auf den Link klickst wird die Seite neu-geladen, also wird auch das $auswahl=0; ausgeführt, wenn $auswahl aber schon einen wert hat, ist das recht unpraktisch. Also nicht vergessen:
<?php if(!isset($auswahl)) { $auswahl=0; } ?>
 
@Cyrix:
zu deinem script:
---
$auswahl = 0;

if ($auswahl==0) {
include(startseite.php);
}
elseif ($auswahl==1) {
include(Link1.php);
}
elseif ($auswahl==2) {
include(Link2.php);
}
---

... per get wird die variable auswahl mit einem zahlenwert übergeben (<a href="blah.php?auswahl=1">link</a>).

das bedeutet, dass das script nun so gestartet wird, als hättest du am anfang des scriptes die variable auswahl mit dem wert 1 definiert.
etwas später setzt du dann aber die variable wieder auf 0... ;)
ich hoffe du verstehst, was ich meine.

am besten du realisierst das so:

<a href="blah.php?auswahl=1">link</a>

<?php
### blah.php ###

if (!(@isset($auswahl))) {
if (!(@include("news.php")))
die("<br \>Fehler: Konnte Datei news.php nicht einbinden!<br \>");
}
else {

switch ($auswahl) {

case 1:
include("datei.php") or die("<br \>Fehler: Konnte Datei datei.php nicht einbinden!<br \>");
break;
case 2:
include("datei2.php") or die("<br \>Fehler: Konnte Datei datei2.php nicht einbinden!<br \>");
break;
case 3:
include("datei3.php") or die("<br \>Fehler: Konnte Datei datei3.php nicht einbinden!<br \>");
break;
default: echo "Datei nicht gefunden.";
}
}
?>
erläuterung:
die funktion isset() überprüft ob eine variable / ein array gesetzt ist. durch das vorangestellte @ wird kein fehler von der isset() - funktion ausgegeben (besser gesagt, vom php interpreter), falls einer auftritt.
das ! in der if-anweisung bedeutet soviel wie "nicht". also:
if (!(...
wenn (nicht(gesetzt($auswahl))) { ...

die if-anweisung bewirkt also, das die datei news.php eingebunden wird, wenn die variable $auswahl nicht gesetzt wurde (oder keinen wert hat?!).

else { } tritt ein, wenn die if-anweisung nicht zutrifft - also die variable $auswahl einen wert hat.

nun tritt switch ein:
es überprüft ob die variable $auswahl einen der werte die bei einer der case-anweisungen angegeben wurden, hat. wenn ja, wird der teil dahinter ausgeführt...
sollte keiner der case anweisungen zutreffen (bsp.: "http://..../blah.php?auswahl=blub") wird der teil nach "default:" ausgeführt.

dies ist meiner meinung nach die beste lösung soetwas zu realisieren. :)

mfg,
little_Newbie
 
hm, du meinst if(!(isset()))?

... die is optional - denke ich mal. ein fehler ist es nicht.

ich find's so übersichtlicher :)
 
Zwei Dinge sind mir bei deinem Vorschlag noch ins Auge gefallen little, zum einen das meiner Ansicht nach der Link in einem neuen Fenster geöffnet wird sobald man auf den Link klickt und zum anderen weiss ich noch nicht recht wie das jetzt mit der Wertübergabe an die Variable $auswahl funktionieren soll. Wieso wird der Wert dort über die Datei "vbeschr.php?auswahl=1" übergeben und welches Skript enthält dann diesen Wert mitsamt Variable? Die index.php oder die vbeschr.php?
Zur Erinnerung, das PHP-Skript vbeschr.php sollte nach meinem Wunsch in der Zeile 3 dieser riesigen Tabelle ausgeführt werden, damit es wie ein eigenständiges Fenster aussieht. Geht das tatsächlich so?

Also so wie ich es unten jetzt beschrieben habe, funktioniert es leider nicht. Der Parser meckert immer in der zweiten Zeile mit dem if(!(...))) etwas von unexpected ';' Aber dort sind alle ; richtig gesetzt.


Es folgt der Inhalt der Datei index.php, die als erste aufgerufen wird:


...
<body bgcolor="#FCFCFF">

<?php

get $auswahl=0;

?>

<table width="800" height="600" border="0" cellspacing="0" cellpadding="0">

<!-- Zeile 1 -->
...

<!- Zeile 3 -->

<tr align="center" valign="center">
<td align="center" valign="center" width="180" height="450">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="4">
<tr align="center" valign="center">
<td align="left" valign="top" style="background-image:url(pics/frame07.jpg)">
<a href="vbeschr.php?auswahl=1">Vorgangsbeschreibungen</a>
</td>
</tr>
</table>
</td>
<td align="center" valign="center" width="600" height="450">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
<tr align="center" valign="center">
<td align="center" valign="center" bgcolor="#ffffff">
<?php
if(!(@isset($auswahl))) {
if(!(@include("startseite.php"))) die("<br\>Fehler: Konnte Datei startseite.php nicht einbinden!<br\>");
}
else {
switch($auswahl) {

case 0:
include("startseite.php") or die("<br\>Fehler: Konnte Datei startseite.php nicht einbinden!<br\>");
break;

case 1:
include("vbeschr.php") or die("<br\>Fehler: Konnte Datei vbeschr.php nicht einbinden!<br\>");
break;

default: echo "Datei nicht gefunden.";
}
}
?>
</td>
</tr>
</table>
</td>
<td align="center" valign="center" width="20" height="450">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
<tr align="center" valign="center">
<td align="center" valign="center" bgcolor="#1d2fd1">
</td>
</tr>
</table>
</td>
</tr>

<!- Zeile 4 -->
...

Danke erstmal für eure rasche Hilfe :) vielleicht kommen wir ja hier noch weiter... so dass das Skript irgendwann läuft, dann schick ich euch mal nen Scrennshot davon :)
 
Zurück
Oben