Skocz do zawartości
soska66

PHP - czy jest funkcja negująca?

Rekomendowane odpowiedzi

czy istnieje jakaś funkcja języka PHP negująca. Ogólnie rzecz biorąc chcę uzyskać następujący efekt: link, którego wartość po kliknięciu zmieniałaby się (np. włącz, wyłącz). najłatwiej byłoby to zrobić niegując na zmianę zero i jedynkę. ale czy php daje taką możliwość. czy jest inny sposób (krótki)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

juz wyjasniam

 

chce zeby po kazdorazowym kliknieciu w link, strona odswiezala sie (i wykonywala jakies zadanie query string). ale za kazdym kliknieciem (i odswiezeniem) zmienna x ma przybierac wartosc - raz 0, raz 1. troche lopatologii :) : klikam - 1, klikam - 0, klikam -1, klikam - 0. i tak dalej. :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Moglbys zapisywac ta zmienna w pliku, ale ze strone uzytkuje zwykle wiecej niz jedna osoba, to trzeba stworzyc sesje z okreslonym czasem wygasniecia i zapisywac zmienna do pliku razem z idnetyfikatorem sesji dla danego uzytkownika.

Ewentualnie kazdemu uzytkownikowi do oddzielnego pliku (o nazwie zgodnej s SessionID) a po przerwaniu sesji kasowac plik, ale wtedy i tak mialbys na serwerze w zaleznosci od liczby odwiedzien od 10 do 100 plikow...

Uzycie sesji jest tutaj konieczne, aby nie skasowac wartosci uzytkownikowi, ktory nadal jest na stronie.

 

UPDATE:

Jest tez prostszy sposob - przesylasz zmienna w query string:

domena.pl/index.php?klik=1

a potem odczytujesz ostatni znak (wartosc 1 lub 0) i odpowiednio zmieniasz:

na poczatku masz:

[php:1:16cee9a6db]$klik = substr(getenv("QUERY_STRING"), 5);[/php:1:16cee9a6db]

 

a przy tworzeniu linku (wewnatrz strony) masz:

[php:1:16cee9a6db]if klik == '1' then echo "<a href=index.php?klik=0..";

if klik == '0' then echo "<a href=index.php?klik=1..";[/php:1:16cee9a6db]

Nie jestem pewien co do tego porownania, bo dopiero ucze sie PHP i pisalem z glowy..

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jest kilka sposobów. Nie ma co pchać się z tym do pliku.

Można to rozwiązać dynamicznie używając na przykład java script.

Ale jeśli chodzi o php to m/w tak jak podał ULLISSES - można przekazać ją do skryptu poprzez metodę post/get.

 

ULLISSES: ten przykład co podałeś jest dość poważnym błędem. A co gdy będzie url/index.php?klik=1&zmienna1=coś ?

 

[php:1:be48890ebd]

<?

if ( isset($HTTP_GET_VARS['klik'])) {

$klik = intval($HTTP_GET_VARS['klik']);

if ($klik == 1) echo "<a href="" . basename($_SERVER['PHP_SELF']) . "?klik=0">cośtam0</a>";

else echo "<a href="" . basename($_SERVER['PHP_SELF']) . "?klik=1">cośtam1</a>";

 

}

[/php:1:be48890ebd]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ULLISSES: ten przykład co podałeś jest dość poważnym błędem. A co gdy będzie url/index.php?klik=1&zmienna1=coś ?

Tzn ja to napisalem bardzo ogolnie, aby wytlumaczyc o co mi chodzi - nie bralem pod uwage pozostalych parametrow, bo w pytaniu nie bylo o tym slowa - chcial przelaczac zmienna to przelacza...

Oczywiscie, jak ktos chce wiecej zmiennych przekazywac, to juz trzeba uzyc twojego kodu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...