Pobranie ID z elementu HTML do PHP

0

Witam mam problem z pobraniem ID wybranej opcji z Select Boxa do PHP w celu wyświetlenia odpowiadającego wyniku.

<select id="selected" onchange="selected()">
  
            <?php while($row1 = mysqli_fetch_array($result1)):;?>

            <option id="<?php echo $row1[ids];?>"><?php echo $row1[name];?></option>

            <?php endwhile;?>
            
        </select>

Tak wygląda mój Select Box.
Mam problem z pobraniem id wybranej opcji. Nazwę łatwo jest pobrać ale jak pobrać ID danej opcji?
Poniżej mój kod w którym próbuje to właśnie zrobić.

<?php 
            
            $selected = $_GET[ TUTAJ MAM PROBLEM ];

            $query = "SELECT `sname` FROM `school` WHERE `id` = '$selected' "; 

            $result2 = mysqli_query($connect, $query);
            
            while($row2 = mysqli_fetch_array($result2)):;
            
            echo $row2[sname];
            
            endwhile;
            
            ?>
0

ID nie jest wysyłane. Tylko name ma znaczenie. Dodaj ID jako value w select. A potem odwołujesz się do GETa po nazwie selecta i dostaniesz ID jako wartość.

0

Zrobiłem tak jak napisałeś i niestety nie działa.

<select name="select" id="selected" onchange="selected()">

            <option>Zawody</option>
            
            <?php while($row1 = mysqli_fetch_array($result1)):;?>

            <option value="<?php echo $row1[ids];?>"><?php echo $row1[name];?></option>

            <?php endwhile;?>
            
</select>
<?php 
            
            $fff = $_GET [select]

            $query = "SELECT `sname` FROM `school` WHERE `id` = 'select' "; 

            $result2 = mysqli_query($connect, $query);
            
            while($row2 = mysqli_fetch_array($result2)):;
            
            echo $row2[sname];
            
            endwhile;
            
?>

Może widzisz tu jakiś błąd.

0

Zmień na:

$fff = $_GET['select'];
$query = "SELECT `sname` FROM `school` WHERE `id` = $fff"; 

I poczytaj sobie o parametryzacji zapytań. Bo to, co teraz masz, nie jest zbyt bezpieczne.

0

Dalej nic. Nie wiem już o co chodzi. Masz może jeszcze jakiś pomysł? Zrobiłem dokładnie tak jak napisałeś i sprawdziłem z 1000 razy.

0
  1. Gdzie masz $connect zainicjalizowane?
  2. Masz w ogóle ten select wrzucony w formularz?
  3. Co zwraca GET?
  4. Spróbuj dodać do mysqli_fetch_array dodatkowy parametr: mysqli_fetch_array($result2, MYSQLI_ASSOC)
0

Jestem zielony w mysqli i php jak pewnie zauważyłeś. Connect mam na początku kodu i na pewno jest ok bo dane do select Boxa się pobierają. Nie rozumiem niestety o co ci chodzi w 2 i 3. Przepraszam i dziękuję za cierpliwość. Spróbuję zrobić to z 4.

1

Moze zrob tak:


$sql = 'SELECT id, sname FROM shool'; 
$result = mysqli_query($conection,$sql); // conection to z polaczenia z serverem

if (mysqli_num_rows($result) > 0) {
  
    while($row = mysqli_fetch_assoc($result)) {

         echo .$row['id'] . ' ' . $row["sname"];
    }
} else {
    echo "Brak wyników";
}


0

Bardzo dziękuję za odpowiedzi, ale zrobiłem metodą $_POST i pobrałem to do innej karty strony.

0

To dziala bo sam tak mam

1 użytkowników online, w tym zalogowanych: 0, gości: 1