Hi,
Du hast doch alle GET-Parameter in $_GET vorliegen - also warum nicht einfach das in einer Schleife durchlaufen, und daraus den neuen Querystring zusammensetzen?
Ok, ich hab grade eine Denk Blockade, kannst du mir das ein wenig erläutern?
$_GET - bekannt?
Schleife - bekannt?
Gut, loslegen:
Nehmen wir an, du wuerdest folgenden Query-String uebergeben:
?menuepunkt1&menuepunkt2&menuepunkt3
fuer den Aufruf einer Seite, auf der die Menuepunkte 1, 2 und 3 aufgeklappt sind.
PHP macht daraus fuer dich Eintrage in $_GET mit den Indexnamen menuepunkt1, menuepunkt2 und menuepunkt3, sieht per print_r($_GET) so aus:
Array
(
[menuepunkt1] =>
[menuepunkt2] =>
[menuepunkt3] =>
)
(Werte haben diese Eintrage alle nicht, da du ja keine uebergibst.)
Jetzt willst du den Link erstellen, der Menuepunkt 2 zuklappt - also muessen die Parameter fuer Punkt 1 und 3 im Resultat erhalten bleiben, und Nummer 2 fliegt raus.
$newQueryString = '?';
$auszulassenderMenuePunkt = 'menuepunkt2'; // Bezeichner des Menuepunktes, der ausgelassen werden soll
foreach($_GET as $name => $value) { // $_GET durchlaufen
if($name != $auszulassenderMenuePunkt) { // pruefen, ob aktueller Eintrag auszulassen ist
$newQueryString .= urlencode($name).'&'; // wenn nicht, zusammen mit nachfolgendem & anhaengen
}
}
$newQueryString = rtrim($newQueryString, '&'); // letztes, ueberfluessiges & wieder entfernen
$newQueryString = htmlspecialchars($newQueryString); // htmlspecialchars drauf anwenden, um aus den & fuer Verwendung im HTML-code & zu machen
ergibt: ?menuepunkt1&menuepunkt3
Funktion draus machen, der der auszulassende Menuepunkt als Parameter uebergeben wird - dann ganz einfach fuer jeden Link nach diesem Schema anwendbar.
MfG ChrisB