В моем файле index.php
есть следующий скрипт, который отправляет запрос ajax
:
$('#select-name').on('change', function () {
var selectedName = $(this).find('option:selected').val();
$.ajax({
type: "POST",
url: "assets/php/selectCar.php",
data: {
selectedName: JSON.stringify(selectedName)
},
dataType: "json",
contentType: "application/json",
success: function (data) {
$.each(data, function (i, value) {
$('.car-model').append('<option value = "'+value+'">'+value+'</option>');
});
},
error: function () {
alert("error");
}
});
});
Элемент с идентификатором select-name
в индексе . * 1031 Файл * выглядит следующим образом:
<select name="car-name" id="select-name" class="form-control">
<option value="select_make">Choose make</option>
<?php
$stmt = "SELECT DISTINCT name FROM car_name";
if ($result = mysqli_query($conn, $stmt)) {
while($row = mysqli_fetch_array($result)){
echo '<option value = "'.$row['name'].'">'.$row['name'].'</option>';
}
}
?>
</select>
И оператор php
в приведенном выше коде работает нормально и отображает элементы. selectCar.php
, в который отправляется запрос, выглядит следующим образом:
<?php
require 'db.php';
$selectedName = $_POST['selectedName'];
$stmt = "SELECT DISTINCT model FROM model WHERE id IN ( SELECT model_id FROM cars WHERE name_id IN ( SELECT id FROM car_name WHERE name = '".$selectedName."'))";
$models = array();
$result = mysqli_query($conn, $stmt);
while($row = mysqli_fetch_array($result)){
$models[] = $row['model'];
}
echo json_encode($models) ;
?>
Я проверил оператор sql
, подставив значение $selectedName
значением, которое я получаю, когда Я предупреждаю selectedName
в сценарии. Я понятия не имею, почему это не работает. Любая помощь будет оценена. Заранее спасибо.
Редактировать: - Я зарегистрировал ошибку в консоли и вижу:
responseText: "<br />\n<b>Notice</b>: Undefined index: selectedName in <b>/opt/lampp/htdocs/wabi-cars/assets/php/selectCar.php</b> on line <b>3</b><br />\n[]"
и строка 3 из selectCar.php
равна $selectedName = $_POST['selectedName'];