У меня есть имя таблицы базы данных, страна и штаты, которые я пытаюсь назвать штатами, когда страна выбрана, для каждого штата ассоциируется название столбца страны XX, как для Пакистана, для Соединенных Штатов Америки, США и так далее.найти решение.
Поле выбора страны
<select name="country" id="country">
<option value="-1">Select Country</option>
<?php
$query = $mysqli->query("SELECT * FROM `country`");
while ( $row = mysqli_fetch_assoc($query) ) {
echo '<option value="'.$row['country_code'].'">';
echo $row['country_name'];
echo '</option>';
}
?>
Поле выбора состояния
<select name="country" id="states">
<option value="-1">Select State</option>
</select>
Ajax Call
$(document).ready(function(){
$('#country').on('change',function(){
var countryCode = $(this).val();
if(countryCode){
$.ajax({
type: "POST",
url: 'getStates.php',
data: {countryCode:country_code},
success:function(data){
$("#states").html(data);
}
});
}
});
});
У меня есть отдельный файл, в который я получаю состояния с помощью ajax
<?php include_once("inc/config.php");?>
<option value="-1">Select State</option>
<?php
$query = $mysqli->query("SELECT * FROM `state` WHERE `country_code` = '".$_POST['country_code']."' ");
while( $row = mysqli_fetch_array($query) ){
echo '<option value="';
$row['state_id'];
echo '">';
echo $row['state_name'];
echo '</option>';
}
?>
<option value="Other">Other</option>
Примечание: Подключение к базе данныхэто нормально, потому что когда я вставляю 'PK'
вместо '".$_POST['country_code']."'
в файл getStates.php, он работает нормально, а когда я вставляю console.log()
в ajax success:function(data){console.log()}
, он показывает соответствующее значение страны, но я думаю, что я делаю какую-то ошибку где-то вajax-код.
Я также получаю неопределенную ошибку переменной, когда вставляю $_POST['country_code']
или $_POST['countryCode']
в файл getStates.php.
Я уверен, что в ajax что-то не такзвоните