PHP Aktuellen Link bei Klick austauschen!

Belee

Lt. Commander
Registriert
Dez. 2006
Beiträge
1.518
Hallo Leute,


ich habe folgendes vor...

In einer Navigation habe ich einen Link "bennant als Part 1" wenn ich darauf klicke wird oberhalb in einer Box Content eingefügt "Include: switch/case". Soweit alles gut nur stehe ich vor einem Problem.

Wie bekomme ich es hin das der Link "Part 1" beim draufklicken durch einen anderen Link zB. "Part 2" ausgetauscht wird?

Danke!

Belee
 
Es kommt drauf an was du genau vor hast.

Wird die Seite neu geladen? Dann kannst du den Link im PHP-Script ja direkt ändern.

Du kannst die URL auch im Browser mit Javascript ändern.

Schildere mal genauer was du vor hast (evtl. Code-Schnipsel).
 
Was ich vorhabe? habe ich das nicht geschrieben? :D

1. Ich habe oben eine Box für Content
2. Ich habe unten eine Navigation mit Links, diese Links fügen immer den dazuhörigen Content in die Box oben ein.
3. Die Links gehen von 1 bis 10 // mehr Platz habe ich nicht
4. Um auf JavaScript zu verzichten // unbediengt!!
5. Möchte ich das, wenn ich Link1 anklicke der Content oben in die Box eingefügt wird sowie auch das sich Link1 in Link11 verwandelt.

Also, wenn ich Link1 angeklickt habe ist der Content der sich hinter Link1 verbirgt in der Box oben drin und meine Navigation soll dann so aussehen...
11 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10

Klicke ich jetzt Link11 an soll sich dieser wieder in Link1 verwandeln, da selbe mit den anderen, klicke ich Link2 an soll er sich in Link12 verwandeln usw.
Also, jeder Link ist quasi doppelt belegt, klicke ich einen an switche ich immer zwischen diese beiden hin und her, jeder hat natürlich eine anderen Inhalt der in die Box oben eingefügt wird.

Ja die Seite wird neu geladen, mit Ajax oder JavaScript ist es klar wie es geht nur möchte ich das nicht weil, wenn jemand ohne Script kommt hat er nur 10 Links. Das muss doch irgendwie mit PHP gehen oder nicht?

Gruß
Belee
 
Zuletzt bearbeitet:
PHP:
<?php
if(isset($_GET['link']) && $_GET['link']==1)
 {
 $link=11;
 }
 else 
 {
 $link=1;
 }
echo "<a href=\"?link=".$link."\">".$link."</a>";
?>
und das 10 mal (oder mit schleife)
oder sollen die jeweiligen links gespeichert werden, also auch bei einem klick auf einen anderen link, die gleiche adresse beibehalten. dann würd ich es mit sessions machen
 
Wie meinst du gespeichert? verstehe jetzt nicht was du meinst. Meinst du vll. wenn irgendwo auf der Seite was ganz anderes angeklickt wird? falls ja, ne, dann kann alles wieder auf default geswitcht werden da ist egal, es soll nur ordentlich gehen solange man genau diese Navigation benutzt.

Ich teste das gleich mal, sage aber schon mal danke für deine Mühe.

EDIT:

1. .$link <-- wird auch für die Linkberschreibung benutzt?, was mache ich mit meinen
Links die so aussehen: Das ist ein rotes Haus ? soll das dann so aussehen..
dasisteinroteshaus ? ne oder

Das Link 1-10 war doch nur ein Besispiel, die stehen doch so nicht auf der Seite sondern haben
schon Namen.

2. Ich habe es aber mal so probiert wie du es da geschrieben hast, leider wird beim Klick
nicht der Link ausgetauscht sondern es bleibt der den man angeklickt hat.
 
Zuletzt bearbeitet:
hi

das was The_Pfitsch geschrieben hat müste funktionieren.
Hier nochmal in Worten wie diese Sache lösbar ist.
Du musst im Link einen GET-Variablen mit unterbringen zum steuern des Linkwechsels.
Im Link 1 übergibst du im GET-Variablen die Information zu Link2.
Die GET-Variable fängst du ab und wertest es aus(, nach dem aufruf des Links).
D.h. du nimmst den Wert und ersetzt den Link (oder ein Teil davon).
Sagmal soll das sowas wie ein Seitenanzeige werden quasi ein Paginator wo man Ergebnisse oder Seiten blättern kann ? Sowas gibt es vorgefertigt über all zu laden.
zbsp:
http://www.it-academy.cc/article/1431/PHP:+Seitenweises+Blaettern.html
aber kannst ach einfach nach Blätterfunktion suchen im Google
 
Ein Online-Beispiel wäre interessant, dann könnte man dir leichter helfen.
 
Hier eine erweiterbare version. Du kannst die Arrays erweitern, einfach einen block kopieren und Werte ändern.

PHP:
<?php
$links = array(
	array(
		'id1' => 1,
		'url1' => 'site1',
		'text1' => 'text1',
		'id2' => 11,
		'url2' => 'site11',
		'text2' => 'text11',
	),
	array(
		'id1' => 2,
		'url1' => 'site2',
		'text1' => 'text2',
		'id2' => 12,
		'url2' => 'site12',
		'text2' => 'text12',
	),
	array(
		'id1' => 3,
		'url1' => 'site3',
		'text1' => 'text3',
		'id2' => 13,
		'url2' => 'site13',
		'text2' => 'text13',
	),
);

$param = (isset($_GET['link']) ? (int)$_GET['link'] : 0);
foreach ($links as $link)
{
	if ($param == $link['id2'])
	{
		$linkId = $link['id1'];
		$linkUrl = $link['url2'];
		$linkText = $link['text2'];
	}
	else
	{
		$linkId = $link['id2'];
		$linkUrl = $link['url1'];
		$linkText = $link['text1'];
	}
	echo '<a href="?' . $linkUrl . '&link=' . $linkId . '">' . $linkText . '</a><br />';
}
?>
 
Schön gemacht. Jetzt noch die Links in eine Liste packen, dann sieht das doch ganz gut aus.
 
So, ich habe mal ein LITE Online Beispiel mit nur einem bzw. 2 Links:

http://www.discoradioaction.eu

Achtung! alles alpha, beta, gamma, keine Browser Anpassung vorhanden!!!

Also, oben seht Ihr den Block wo die Trackinfos ausgegeben werden,
dieser Block steckt in einem Container, dieser Container hat einen switch/case
Code.

Links drunter seht Ihr den Link "Switch to Italo-Disco" nun möchte ich, wenn ich auf diese
Link klicke oben im Container der Content ausgetauscht wird sowie auch das
"Switch to Italo-Disco" durch "Switch to Disco" ersetzt wird.

Wenn man den Link klickt wird ein anderer Content eingefügt, super nur der Link ändert sich
leider nicht, da sollte dann halt "to Disco" stehen. Also immer switchen, wenn also neuer Content rein includiert wird soll sich auch immer der Link ändern.
 
Zuletzt bearbeitet:
PHP:
<div id="navigation">
 <ul>
  <?php 
  if(isset($_GET['disco']) && $_GET['disco'] == 'italoDisco') { ?>
  		<li><a href="index.php?disco=disco">Switch to Disco</a></li>
  <?php } else { ?>
  		<li><a href="index.php?disco=italoDisco">Switch to Italo-Disco</a></li>
  <?php } ?>
 </ul>
</div>

etwa so?

edit: die Get-Variablen müsstest du natürlich noch an deinen Content anpassen.
 
Zuletzt bearbeitet: (edit)
Genau so und vielen Dank, es funktioniert!

EDIT:
Ja klar die sieht dann so aus:
index.php?disco=italo&stream=italo
&
index.php?italo=disco&stream=disco
 
@Gerstensaft
Eine Frage zu deinem Script hätte ich noch und zwar, ist das überhaupt sicher gegen hacking?
 
Zurück
Oben