Witam :)
Zdecydowałem się to napisać z uwagi na następującą okoliczność. A mianowicie- zainteresował mnie omawiany w tym filmiku https://www.youtube.com/watch?v=5LGojZZct5g&fbclid=IwAR0QHbiub4zX_i8tLseC-47WY2PRyOdmvb6g6jhl1oM2UnVtj38pxtXKNTM przykład. To jest, jeśli się nie mylę, projekt autorstwa Pasji Informatyki.
No i postanowiłem że "trochę" sobie w tym projekcie pokombinuję. Pierwsze co postanowiłem w tym projekcie zmienić to zrobić tak aby klasę wybierało się za pomocą pola select, które, z kolei, tak zaprogramowałem aby zmiana wyboru powodowała wysłanie zapytania do bazy danych. Dokonane przeze mnie zmiany w tym zakresie przedstawia załączony plik index.php- https://www107.zippyshare.com/v/x9Hj2llb/file.html
Znacznikowi select nadałem w tej modyfikacji następującą strukturę:
<select name="klasa1" onchange="this.form.submit()">
<option value="0">--Wybierz klasę--<option>
<?php
$q2 = "SELECT id, nazwa FROM klasa";
$result2 = mysqli_query($conn, $q2) or die("Problemy z odczytem danych!");
while($row = mysqli_fetch_assoc($result2)) {
if (isset($_POST["klasa1"])) {
if ($_POST["klasa1"] === $row["id"]) {
echo '<option value="'.$row["id"]. 'selected">'.$row["nazwa"] .'</option>';
//echo "Wszystko jest ok";
} else {
echo '<option value="'.$row["id"]. ' ">'.$row["nazwa"] . '</option>';
//echo "Wartości tych zmiennych róznią się od siebie bo " . $_POST["klasa1"]. "nie równa się " .$row["id"];
}
}
else {
echo '<option value="'.$row["id"]. ' ">'.$row["nazwa"] . '</option>';
//echo "Nie ma takiej zmiennej";
}
}
?>
</select>
No i pierwsza rzecz, na którą zwróciłem uwagę przy tej modyfikacji to to aby pole wyboru było zapamiętywane. No i w tym celu wewnątrz pętli "while" dałem 2 instrukcje warunkowe (jedna zagnieżdżona w drugiej aby w zależności od równości pewnych zmiennych odpowiedniej opcji nadawało atrybut "selected". Problem w tym że to nie działa. Sprawdzałem za pomocą różnych sztuczek, która instrukcja warunkowa zawsze zwraca wynik negatywny i okazuje się że ta druga ($_POST["klasa1"]==$row["id"]). Próbowałem też za pomocą różnych sztuczek wyrzucać wartości tych zmiennych i nawet gdy wyrzucało je takie same to wynik porównania dawało negatywny. Tak więc czy byłby ktoś w stanie wyjaśnić co jest tu nie tak? Dlaczego zawsze taki wynik porównania mam zwracany? No i druga sprawa- dlaczego w polu "select" między opcją "Wybierz klasę" a opcjami poszczególnych klas jest linijka wolna?
Bardzo prosiłbym o pomoc i jakieś wskazówki.
Pozdrawiam :)