Pobranie danych z selecta w php

0

Mam bazę z tabelami kom_pojazd_marka (id_marka,marka) i kom_pojazd_model (id_model, id_marka, model).
Chcę zrobić formularz w którym po wybraniu marki z listy rozwijanej, wartość tę będę mógł włożyć do WHERE kwerendy wybierającej model, tak aby wyświetliły mi się tylko modele marki wybranej w poprzednim kroku.

Mój kod:

<body>
	
	<form action="razem.php" method="post">
		Rok produkcji samochodu: <br/> <input type="number" name="rok" id="rok"/> <br/><br/>
		

<?php
		require_once 'connect.php';
		$polaczenie=new mysqli($host, $db_user, $db_password, $db_name);
		
		if (mysqli_connect_errno())
		{
		echo "Nie podłączono do bazy " . mysqli_connect_error();
		}

		$marka1 = $polaczenie->query("SELECT Id_marka, marka FROM kom_pojazd_marka");
		echo 'Marka samochodu: <select name="marka" id="marka11"><br/><br/>';
		while($marka=mysqli_fetch_assoc($marka1))
		{echo '<option value="" '.$marka['id_marka'].' ">'.$marka['marka'].'</option>';}
		echo '</select><br/><br/>';
		
		$model1 = $polaczenie->query("SELECT Id_model, model FROM kom_pojazd_model");
		echo 'Model samochodu: <select name="model"><br/><br/>';
		while($model=mysqli_fetch_assoc($model1))
		{echo '<option value="" '.$model['id_model'].' ">'.$model['model'].'</option>';}
		echo '</select><br/><br/>';

?>
</form>
</body>

Próbowałem to zrobić za pomocą javascript za pomocą kodu:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    alert("Value: " + $("#marka11").val());
  });
});
</script>

Oczywiście ten alert to tylko żeby sprawdzić czy "widzi" wybraną wartość. Niestety nie widzi. ;).
Proszę o podpowiedź, jak odczytać wybraną wartość z listy rozwijanej i przekazać ją do kwerendy wybierającej model pojazdu.

1

Podejrzyj sobie generowany HTML bo chyba value masz zawsze puste:

 '<option value=""
0

Najlepiej użyć do tego ajax, aby po wybraniu marki wczytać odpowiednie modele. Będziesz do tego potrzebował osobny skrypt, np. car_model.php do którego będziesz przekazywał id marki:
car_model.php

if (isset($_GET['marka_id'])) {
  $markaId = (int) $_GET['marka_id'];
  $res = $polaczenie->query("SELECT Id_model, model FROM kom_pojazd_model WHERE Id_marka = {$markaId}");
  echo json_encode($res->fetch_all(MYSQLI_ASSOC));
} else {
  echo json_encode(['error' => 'Brak ID']);
}

i w pliku z formularzem (w document.ready oczywiście):

$("#marka11").change(function() {
  var selectedId = $("#marka11 option:selected").val();
  $.getJSON('car_model.php', {marka_id: selectedId}, function(res) {
    if (res.error) {
      alert(res.error);
    } else {
      // tutaj musisz budowac <option value="res[i].Id_model">res[i].model</option> 
    }
  }
});

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