Witam!
Tworzę stronę z dwoma polami <select>: "Rok produkcji samochodu" i "Marka pojazdu w danym roku prod.".
Za pomocą AJAX chcę wysłać wartość z id #rok do pliku "marka_rok_pobierz.php" żeby użyć tej wartości do SELECT-a w mysql.
Następnie plik ten ma wysłać JSONem wartości uzyskane z SELECT do formularza.
Jeśli w SELECT wprowadzę konkretną wartość np. '5' to <select> z formularza wyświetla mi marki samochodów produkowanych w danym roku. Ale jeśli w SELECT WHERE wprowadzę zmienną $rok3, która powinna być pobrana z AJAX-a przez POST, to nie działa...
Siedzę już nad tym 2 tygodnie i nie mam pojęcia co robię źle :(
plik formularz.php
<form>
<select id='rok'>
Rok produkcji samochodu:
<?php
require_once 'connect.php';
$polaczenie=new mysqli($host, $db_user, $db_password, $db_name);
$pobierz = $polaczenie->query("SELECT * FROM kom_pojazd_rok");
while($rok1=mysqli_fetch_assoc($pobierz))
{echo '<option value="'.$rok1['id_kom_pojazd_rok_prod'].' ">'.$rok1['rok_prod'].'</option>';}
?>
</select>
</form>
Marka pojazdu w danym roku prod.:
<select id='marka'>
</select>
<script>
$(document).ready(function(){
$('#rok').change(function() {
var rok2 = $('#rok').val();
$.ajax({
type:"POST",
url:"marka_rok_pobierz.php",
data: {klucz_ajax:rok2},
success:function() {
alert("Wysłano");
},
error: function(blad) {
alert( "Błąd");
console.log(blad);
}
});
});
$('#rok').click(function(){
$.ajax({
type:"GET",
url:"marka_rok_pobierz.php",
contentType:"application/json; charset=utf-8",
dataType:'json',
success: function(json) {
for (var klucz in json)
{
var wiersz = json[klucz];
var id_marka = wiersz[0];
var marka = wiersz[1];
$("<option value="+id_marka+">"+marka+"</option></select>")
.appendTo('#marka')
.append("<hr>")
}
},
error: function(blad) {
alert( "Wystąpił błąd");
console.log(blad);
}
});
});
});
</script>
plik marka_rok_pobierz.php
<?php
header('Content-type: application/json');
$rok3=$_POST['klucz_ajax'];
require_once 'connect.php';
$polaczenie=new mysqli($host, $db_user, $db_password, $db_name);
$polaczenie->set_charset("utf8");
if (mysqli_connect_errno())
{
echo "Nie podłączono do bazy " . mysqli_connect_error();
}
else
{
$pobierz=$polaczenie->query("SELECT kom_pojazd_marka_rok.id_marka, kom_pojazd_marka.marka FROM kom_pojazd_marka_rok INNER JOIN kom_pojazd_marka ON (kom_pojazd_marka_rok.id_marka=kom_pojazd_marka.id_marka ) WHERE id_kom_pojazd_rok='$rok3'");
$pobrane_dane = array();
while ($wiersz = mysqli_fetch_row($pobierz))
{
$pobrane_dane[] = $wiersz;
}
echo json_encode($pobrane_dane);
}
?>