Witam, jestem początkującym "programistą" PHP, i od 2 dni głowię się nad niedziałającym skryptem PHP w moim nowym projekcie.
Zamysł jest taki, są 2 listy<select>, wybrane w nich opcje powinny być wybierane domyślnie po przeładowaniu strony. Nie będę opisywał dokładnie mechaniki ponieważ kod chyba mówi wszystko ;)
<div class="search"> <div class="dropdown"> <form method="post" action="?"> <select name="list" class="dropdown-select"> <option>Wybierz...</option> <option <?php if($_SESSION['rememberDESC']=1){ echo "selected"; $_SESSION['rememberDESC']=0; } ?> value="1">Wydajność (od najwyższej)</option> <option <?php if($_SESSION['rememberASC']=1){ echo "selected"; $_SESSION['rememberASC']=0; } ?> value="0">Wydajność (od najniższej)</option> </select> </div> <div class="dropdown"> <select name="amdnv" class="dropdown-select"> <option>Wybierz...</option> <option <?php if($_SESSION['rememberAMD']=1){ echo "selected"; $_SESSION['rememberAMD']=0; } ?> value="1">Tylko AMD</option> <option <?php if($_SESSION['rememberNV']=1){ echo "selected"; $_SESSION['rememberNV']=0; } ?> value="0">Tylko Nvidia</option> </select> </div> <button class="btn">Wyszukaj</button> </form> </div> <?php if(isset($_POST['list'])){ $list=$_POST['list']; } if(isset($_POST['amdnv'])){ $amdnv=$_POST['amdnv']; } if(isset($_POST['write'])){ $write=$_POST['write']; } include('connect.php'); if(isset($list)){ if($list==1){ $_SESSION['rememberDESC']=1; if(isset($amdnv)){ if($amdnv==1){ $result=$mysqli->query("SELECT * FROM cards WHERE an=1 ORDER BY mark DESC"); $_SESSION['rememberAMD']=1; } else{ $result=$mysqli->query("SELECT * FROM cards WHERE an=0 ORDER BY mark DESC"); $_SESSION['rememberNV']=1; } }else{ $result=$mysqli->query("SELECT * FROM cards ORDER BY mark DESC"); } }else{ $_SESSION['rememberASC']=1; if(isset($amdnv)){ if($amdnv==1){ $result=$mysqli->query("SELECT * FROM cards WHERE an=1 ORDER BY mark"); $_SESSION['rememberAMD']=1; } else{ $result=$mysqli->query("SELECT * FROM cards WHERE an=0 ORDER BY mark"); $_SESSION['rememberNV']=1; } }else{ $result=$mysqli->query("SELECT * FROM cards ORDER BY mark"); } } }
Dalej jest już tworzenie tablicy asocjacyjnej etc., nieistotne.
Ma ktoś pomysł dlaczego ten skrypt nie działa? Domyślnie wyświetla mi sie za każdym razem wyd. od najniższej i nvidia, jednak gdy roboczo wyświetlam na ekranie (przed listami select) zmienne globalne "rememberXXX" Pokazują one że są ustawione zupełnie odwrotnie, nie mam pojęcia dlaczego się tak dzieje...
Z góry dziękuję za pomoc :)
EDIT: Oczywiście na początku pliku umieściłem <?php session_start(); ?>