![]() |
Zmiana statusu pozycji w menu - Wersja do druku +- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl) +-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www) +--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych) +--- Wątek: Zmiana statusu pozycji w menu (/thread-zmiana-statusu-pozycji-w-menu) Strony:
1
2
|
Zmiana statusu pozycji w menu - e-konrad - 26-01-2012 Witam wszystkich serdecznie. Piszę funkcję która umożliwia mi zmianę statusu pozycji w menu z aktywnej na nieaktywną i na odwrót. Problem polega na tym że ta funkcja działa tylko na ostatnio dodanej pozycji. Poniżej przedstawiam kod Kod PHP: <?php Tak jak pisałem, funkcja działa tylko do ostatnio dodanej pozycji. Proszę o wyjaśnienie dlaczego tak się dzieje oraz co powinienem poprawić RE: Zmiana statusu pozycji w menu - Pedro84 - 26-01-2012 Nic takiego nie widzę problematycznego. URLe masz w porządku? RE: Zmiana statusu pozycji w menu - e-konrad - 26-01-2012 URLe są OK. Po wyświetleniu wszystkich pozycji menu (aktywne i nieaktywne) pozycje mogę zdezaktywować, ale już kolejne kliknięcie nie działa na zmianę statusu, jedynie tak jak pisałem tylko ostatnio dodana pozycja zachowuje się poprawnie. Czy operacja zmiany statusu powinna znajdować się w innym pliku php niż w tym w którym jest ona wywołana? Powyższy kod przedstawia plik menu.php widziany w przeglądarce jako: Cytat:index.php?go=menu RE: Zmiana statusu pozycji w menu - Pedro84 - 26-01-2012 To jak ładujesz plik znaczenia nie ma. Rozumiem, że nie używasz AJAXa? Następuje przeładowanie strony? Spróbuj, po deaktywacji jakieś pozycji, wyświetlić sobie źródło strony i sprawdzić te URLe jeszcze raz. Na chwilę obecną, nic do głowy mi nie przychodzi innego. --- Spróbuj w tym fragmencie, Kod: if($a == 'status' and !empty($id)) { RE: Zmiana statusu pozycji w menu - e-konrad - 26-01-2012 Pod listą pozycji menu pojawiło się Kod: string(1) "1" Przeładowanie strony działa za każdym razem, ale ponowna zmiana statusu pierwszych pozycji nie działa Po wyświetleniu var_dump($stat); widzę że wartość nie przechowuje jako int tylko nie wiem dlaczego. Niestety, po zamianie fragmentu kodu Kod: $stat = $r['status']; Kod: $stat = (int)$r['status']; Kod: int(1) ale wraz funkcja nie działa RE: Zmiana statusu pozycji w menu - Pedro84 - 26-01-2012 Czyli ślepy jestem bo nic nie widzę. Z drugiej strony, po zastanowieniu, lepiej byłoby gdybyś przekazywał w URL status, odeszły by Ci te if'y niepotrzebne, a to problem rozwiąże na pewno. RE: Zmiana statusu pozycji w menu - e-konrad - 27-01-2012 Gdybym status przekazywał w URL to czy muszę odnieść się do pliku który odpowiada za zmianę statusu, przykładowo: index.php?go=statusUp&id albo index.php?go=statusDown&id , gdzie pliki statusUp.php i statusDown.php zawierają funkcję atywacji/dezaktywacji statusu? RE: Zmiana statusu pozycji w menu - Pedro84 - 27-01-2012 Nie. Po prostu w momencie wyświetlania pozycji, generujesz odpowiedni link, np: Kod: $status = ($r['status'] == 0) ? 1 : 0; RE: Zmiana statusu pozycji w menu - e-konrad - 27-01-2012 Zrobiłem tak jak opisałem po swojemu i na razie działa dobrze, tylko że musiałem utworzyć dwa pliki odpowiadające za zmianę statusu ale i tak na końcu dodałem header() wiec zmiana jest praktycznie natychmiastowa. Z php jeszcze raczkuję ale będę próbować też Twoim sposobem. Dziękuję Ci za podrzucenie pomysłu o przekazywaniu statusu w URL. Pozdrawiam RE: Zmiana statusu pozycji w menu - Pedro84 - 27-01-2012 Widzisz, raczkujesz, ale strasznie podoba mi się Twoje podejście. Chcesz się uczyć, poznawać, a takim osobom, aż chce się pomagać, uwierz. Podejście inne nić 99% początkujących ![]() |