Hilfe mit Regular Expression

Ja, naja, ne Lösung ists bestimmt. Aber ob die so 'gut' ist und vor allem performant will ich mal anzweifeln.
Ach noch was: Anstatt ereg_replace() solltest du vielleicht besser preg_replace() verwenden (schneller!).
 
Original geschrieben von jenno
ja, ich würde dann mal tippen, das Du nicht verstehst was ich meine. Denn darum geht es ja gerade, dass ich nicht xMal den Parameter page in meiner URL haben möchte.
Hm, wenn ich meinen geposteten PHP-Code ansehe, hab ich auch nur einmal die Variable page in meiner URL.

Und wenn ich mir jetzt Deinen Code ansehe, stell ich mir die Frage, woher Du nach dem formatieren weißt, auf welche Seite dein Besucher gerade ist, denn das hast Du ja rausgefiltert. Also wird er, wenn ich z.b. Nach name sortieren lasse, wieder auf die erste Seite geschickt (page ist ja aus Deinem Link komplett gelöscht worden).
 
Darf ich Dir dennoch eine (wie ich finde) elegantere Möglichkeit vorstellen?
Zu Beginn Deines Scriptaufrufes führst Du folgendes aus:
PHP:
  session_start();
  
  reset($_REQUEST);
  while (list ($key, $val) = each ($_REQUEST)) {
    $_SESSION[$key] = $val;
  }
Dadurch werden alle an das Script übergebenen Variablen der Session zugeordnet. Der Vorteil ist: Wird ein Parameter nicht übergeben, so steht der alte Wert trotzdem in der Session. Somit musst Du nur die Parameter übergeben, die sich geändert haben und nicht den elend langen Querystring.
Anschließend arbeitest Du nur noch mit den Session-Variablen (z.B. $_SESSION['page'])
Diese Technik macht sich vor allem bei größeren Projekten bezahlt, bei denen man sich unter Umständen recht viele Parameter "merken" muss.

mfg, snuu
 
Zuletzt bearbeitet:
Chino,

ok, nochmal. Ich habe den page-Parameter mehrmals, weil ich mir bei jedem Aufruf der Seite (es spielt sich im Moment alles auf ein und derselben Seite ab!) den querystring merke, um mir bereits festgelegte Parameter zu merken! Da aber jedesmal ein Parameter für die aktuelle Seite gesetzt wird (wenn ein entsprechender Link geklickt wurde), steht er dann immer öfter im querystring.

Lies doch bitte nochmal mein Beispiel durch.

Und der User wird nach dem formatieren nicht wieder auf die erste Seite geschickt, sondern entweder auf die Seite die er anklickt (da steht dann im Link eben widerum der page-Parameter von wo es hingehen soll). Nur hier hänge ich den formatierten querystring mit an die URL.

Wenn kein Link der zu einer anderen Seite führen soll angeklickt wird, sondern zum Beispiel ein Sortieren Link, dann wird natürlich auch nicht der formatierte querystring benutzt!
 
Snuu,

und was ist, wenn ich dann nicht mehr nach dem Namen, sondern z.B. nach der Telefonnummer suchen will? Dann steht der Name ja immernoch in der Session.
 
Original geschrieben von jenno
Chino,

ok, nochmal. Ich habe den page-Parameter mehrmals, weil ich mir bei jedem Aufruf der Seite (es spielt sich im Moment alles auf ein und derselben Seite ab!) den querystring merke, um mir bereits festgelegte Parameter zu merken! Da aber jedesmal ein Parameter für die aktuelle Seite gesetzt wird (wenn ein entsprechender Link geklickt wurde), steht er dann immer öfter im querystring.
Also entweder bin ich jetzt blöd und hab keine Ahnung, oder wir reden an einander vorbei. Erklär mir doch bitte mal, warum Du den page mehrmals an die URL hängst. Du brauchst Dir ja auch nich den ganzen QueryString zu merken, sondern nur einzelne Werte aus dem QueryString. Gerade weil sich alles auf einer Seite abspielt ist das ganze doch noch einfacher. :rolleyes:

PHP:
// Dein Beispiel QueryString
$link = "aangiften.php?page=2&page=1&page=11&page=21&sort=aangiftenr&page=21";

// 'Sauberer' QueryString
$link = "aangiften.php?page=21&sort=aangiftenr";
Also entweder page ist 1, 2, 11 oder 21, also brauchst Du auch nur einmal page übergeben. Wenn ich Dich immer noch nicht verstanden hab, lass gut sein, dann mach es halt mit Sessions. :confused:
 
Wenn ich das richtig sehe, dann hast Du doch nur einen Parameter, der die Art der Sortierung bestimmt. Nämlich "sort". Wenn Du nun nach der Telefonnummer sortieren möchtest und nicht nach dem Namen, dann übergibst Du zum Beispiel "?sort=telefonnummer" woraufhin der Wert in der Session geändert wird. Prüfst Du nun $_SESSION['sort'], so steht "telefonnummer" darin und Du weißt, dass Du nach der Telefonnummer sortieren musst.

mfg, snuu
 
Chino,

ich glaub, wir reden aneinander vorbei. Hab Dir grad n icq Request for Authorization geschickt...
 
Original geschrieben von jenno
Chino,

ich glaub, wir reden aneinander vorbei. Hab Dir grad n icq Request for Authorization geschickt...
Ok, dann is gut.

Kann was dauern eh ich Dich autorisiere, bin gerad noch im Büro.
 
Zurück