PHP HREF-Übergeben

A

AeS

Gast
Mein Problem sieht wie folgt aus, ich gebe meinen Drop Down - Menüpunkten in der Link Referenz href einen PHP Verweis mit, welcher z.B. eine Variable enthält.
Nun sollen am Ende 5 Drop Down Menüs nicht miteinander agieren, jedoch mit der Datei auf welcher sie liegen.
Eine URL müsste daher wie folgt aussehen "test.php?test1=test&test2=test2........".
Nun ist ein erster Verweis natürlich kein Problem, mein Problem besteht darin, die Verweise zu verknüpfen und egal, welches Menü wann betätigt wird, sich die URL dementsprechend ändert.

Um es vielleicht noch mal zu verbildlichen.

Menü1
<a href="?beispiel=hans"> Bla </a>
Menü2
<a href="?beispiel2=peter"> Bla </a>
URL sollte also sein.
test.php?beispiel=hans&beispiel2=peter
 
Versteh ich nicht ganz.

Jeder Link hat einen Parameter - wenn du einen dieser Links anklickst, steht dieser eine Paramter in der URL. Welche URL soll dann beide (alle) Parameter haben?
 
Die URL soll am Ende alle Parameter enthalten, ohne das hierzu ein abschließender Submit-Button erfolgt.
Stell es dir vor, wie bei einem Konfigurator, wo du zuerst die Farbe, dann die Felgen usw. auswählst.
Nach jeder Auswahl soll sich die URL um den Zusatz der neuen Auswahl ergänzen.
Heißt also, das ich 5 Menüs habe, welche auf 5 Flächen zugreifen werden, welche wie ein Konfigurator fungieren sollen.
Da jedoch nicht vorgegeben wird, in welcher Reihenfolge die Flächen belegt werden, kann ich nicht bei der Folgefläche sagen <a href="erste_Seite&neue_variable=test".
Sondern müsste etwas wie <? php '<a href="' .$derzeitiger_URL_Zusatz . 'neue_Zusatz=test' ?> da stehen.
Es ist also geplant, nach belieben die Flächen zu konfigurieren, ohne einen Schritt vor oder zurück zu müssen.
 
Du kannst alle GET-Parameter abfragen und an deine Links anhängen.

Wenn bekannt ist, welche es gibt:
PHP:
if($_GET['param1']) $url .= "&param1=" . $_GET['param1']; 
if($_GET['param2']) $url .= "&param2=" . $_GET['param2'];
Oder allgemein:
PHP:
foreach($_GET as $key => $value)
{
  $url .= "&" . $key . "=" . $value;
}

Und dann:
HTML:
<a href="test.php?paramX=Y<?php echo $url; ?>">Link</a>


Wobei es evtl. sogar ein $_SERVER-array gibt, wo alle GET-Parameter als String drin stehen.

edit: $_SERVER['QUERY_STRING'] wars.
 
Zuletzt bearbeitet:
Zitat von Mr. Snoot:
Du kannst alle GET-Parameter abfragen und an deine Links anhängen.

Bitte dabei aber nicht die Funktion urlencode() vergessen.

PHP:
if($_GET['param1']) $url .= "&param1=" . urlencode($_GET['param1']); 
if($_GET['param2']) $url .= "&param2=" . urlencode($_GET['param2']);
PHP:
foreach($_GET as $key => $value)
{
  $url .= "&" . urlencode($key) . "=" . urlencode($value);
}
 
Schon mal vielen dank, klappt auch bis zu dem Punkt, wo eine Variable noch nicht belegt ist, ist sie jedoch festgelegt, tritt danach eine Dopplung auf.

PHP:
foreach($_GET as $key => $value)
		{
		  $url .= "&" . urlencode($key) . "=" . urlencode($value);
		}


HTML:
   <a href="configuration.php?test_1=ipgc<?php echo $url; ?>" name="test_1" value="test">Test</a>

url...
value_1=test&value_1=test_2&value_2=test_4&value_3=test_5&value_4=test_2&value_5=test1

Immer jeweils an der ersten Stelle, habe schon durch If Anweisungen noch und nöcher versucht das zu umgehen, sehe jedoch wohl den Wald vor lauter Bäumen nicht.
 
und wenn du die werte einfach in die session schreibst? Dann hasste auch kein problem mit hin und herspringen.

$_SESSION['test'] = "test";

usw...

edit: ich glaube dein fehler ist das du im href name und value nochmal setzt, das soll doch direkt übers href gehen oder nicht?
 
Zuletzt bearbeitet:
Wenn man einen Link angeklickt hat, ergo es diesen Parameter schon gibt, dann könntest du den Link mit eben diesem Parameter ja deaktivieren/ausblenden.
 
Zurück
Top