Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Dodanie do adresu zmiennej, w zależności od aktualnej podstrony
-Michał Ziółkowski-
post 8.04.2011, 08:56:18
Post #1





Goście







Dzień dobry, czy mógłby ktoś mi pomóc napisać skrypt dodający do aktualnego adresu zmienną language=english lub language=polish po kliknięciu na link eng lub pl spełniający następujące warunki:
  • jeżeli w adresie są już jakieś inne zmienne to zamiast ?language=english doda &language=english (lub polish)
  • jeżeli w adresie występuje już ?language=english lub &language=english (lub polish) nie doda nic, chyba że w adresie znajduje się zmienna english a wymuszona zostanie polish (i na odwrót) - wtedy podmieni je ze sobą

Jeżeli ktoś byłby na tyle miły by pomóc to z góry dziękuje smile.gif
Go to the top of the page
+Quote Post
desperat666
post 8.04.2011, 10:37:18
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 12
Dołączył: 19.03.2011

Ostrzeżenie: (10%)
X----


Tak.. zbuduj sobie tablicę tych swoich zmiennych
  1. <?php
  2. $twojezmienne = Array();
  3.  
  4. $twojezmienne["language"] = "polish";
  5. $twojezmienne["dupa"] = "ryba";
  6. ?>


i zobacz co wyświetli funkcja http_build_query:
  1. <?php
  2. echo http_build_query($twojezmienne, '', '&amp;');
  3. ?>


Może pomoże
Go to the top of the page
+Quote Post
-Michał Ziółkowski-
post 8.04.2011, 11:07:40
Post #3





Goście







A nie dało by się jakoś sprawdzić (za pomocą wyrażeń regularnych?) czy występuje już w adresie ?jakas_zmienna=cos i jeżeli tak dodać &amp;?
Mam dużo podstron, na każdych różne zmienne i zaproponowany sposób średnio mi pasuje.
Go to the top of the page
+Quote Post
desperat666
post 8.04.2011, 11:34:34
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 12
Dołączył: 19.03.2011

Ostrzeżenie: (10%)
X----


przecież żeby wiedzieć czy jest ta zmienna w adresie trzeba użyć tablicy $_GET, na przykład
  1. <?php
  2. if ($_GET["language"]=="polish") { }
  3. ?>

i tejŻe tablicy też możesz użyć do http_build_query() no nie?
Go to the top of the page
+Quote Post
-Michał Ziółkowski-
post 9.04.2011, 00:41:29
Post #5





Goście







Nie wiem czy się dobrze zrozumieliśmy, ale nie ważne poszukałem w google i znalazłem takie rozwiązanie:
  1. $activepageuri = explode ('/', $_SERVER['REQUEST_URI']);
  2. $activepage = $activepageuri[count ($activepageuri) - 1];
  3.  
  4. $queryString = array();
  5. if ($board_config['default_lang'] == "english") $setLang = 'polish';
  6. elseif ($board_config['default_lang'] == "polish") $setLang = 'english';
  7.  
  8. $count = 0;
  9.  
  10. foreach($_GET as $key => $val)
  11. if($key <> 'language'){
  12. $queryString[] = urlencode($key) . '=' . urlencode($val);
  13. $count++;
  14. }
  15. $queryString = $activepage;
  16. $queryString .= implode('&amp;', $queryString);
  17. $queryString .= $count ? '&amp;' : '?';
  18. $queryString .= 'language=' . $setLang;

I wyświetlanie w sposób następujący: <a href="' . $queryString . '"><img src="images/lang_'.$setLang.'.png" alt="language" /></a>'.
Wszystko działa tak jak należy, jednak czy dało by się zrobić tak aby jeżeli po kliknięciu na zmianę języka i dodaniu powiedzmy ?language=english i ponownym kliknięciu na zmianę języka skrypt dodawał ?language=polish a ?language=english kasował?
Bo teraz w takiej sytuacji tworzy link ?language=english?language=polish, który co prawda działa ale nie jest najlepszym wyjściem.
Pozdrawiam.
Go to the top of the page
+Quote Post
--quba--
post 9.04.2011, 19:12:42
Post #6





Goście







dołączam do prośby, czy mógłby ktoś poprawić ten skrypt tak by działał poprawnie?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.07.2025 - 01:53