Как правильно вызывать данные ajax - PullRequest
0 голосов
/ 26 августа 2018

У меня есть имя таблицы базы данных, страна и штаты, которые я пытаюсь назвать штатами, когда страна выбрана, для каждого штата ассоциируется название столбца страны 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 что-то не такзвоните

1 Ответ

0 голосов
/ 26 августа 2018

Вы пытаетесь отправить country_code в качестве значения.Но вы не объявили переменную.Попробуйте:

data: {'countryCode':countryCode},

Также: вы можете добавить некоторые проверки безопасности перед использованием переменной, опубликованной вашим пользователем в запросе.Посмотрите: https://en.wikipedia.org/wiki/SQL_injection

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...