0
Good afternoon! I am facing a problem in linking 2 select. I’ve followed a lot of tutorials, but none solved.
    <?php include ('conection.php'); ?>
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $('#estados').on('change', function(){
                    var estadoid = $(this).val();
                    if(estadoid){
                        $.ajax({
                            type:'POST',
                            url:"ajax.php",
                            data:'estado_id='+estadoid,
                            success: function(html) {
                                $('#cidades').html(html);
                            }
                        });
                    }else{
                        $('#cidades').html('<option value="">Escolha sua Cidade</option>'); 
                    }
                });
            });
        </script>
        <style type="text/css">
            .form-control {
                margin-top: 1rem;
                margin-bottom: 2rem;    
            }
        </style>
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-xs-4 col-xs-offset-4"> 
            <h1>Cidade Escolha</h1>
            <form class="text-center" method="get" enctype="multipart/form-data" action="">
                <div class="form-group">
                    <select class="form-control" id="estados" name="estados">
                        <option>Escolha seu Estado</option>
                        <?php 
                            $query = "select * from estados;";
                            $dt = mysqli_query($conn, $query);
                            while ($row = mysqli_fetch_array($dt)){
                            ?>
                            <option value="<?php echo $row['estado_id'];?>"><?php echo $row['nome'];?></option>
                            <?php }; ?>
                    </select>
                    <select class="form-control" id="cidades" name="cidades">
                        <option value="">Escolha sua Cidade</option>
                    </select>
                    <input type="text" name="nome" placeholder="Nome">
                    <input type="submit" name="submit" placeholder="enviar">
                </div>
            </form>
        </div>
    </div>
</div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="js/javascripts/locastyle.js"></script>
    <script src="js/bootstrap.min.js"></script>                   
</body>
</html>
The file connecting to the database
<?php   
$host = "localhost";
$user = "root";
$pas = "";
$banco = "brasil";
$conn = mysqli_connect($host,$user,$pas);
$db = mysqli_select_db($conn, $banco);
$charset = 'utf8';
mysqli_set_charset ($conn, $charset);  ?>
The ajax code
<?
include 'conection.php';
if(!empty($_POST['estado_id'])){
    $query = "SELECT * FROM cidades WHERE estado_id = ".$_POST['estado_id']." AND status = 1 ORDER BY nome ASC;";
    $dt = mysqli_query($conn, $query);
    $rowcount = mysqli_num_rows($dt);
    if ($rowcount >0) {                 
        while ($row = mysqli_fetch_assoc($dt)){
            echo '<option value="'.$row['cidade_id'].'">'.$row['nome'].'</option>';
        };
    }else{
        echo '<option value="">Cidade não Disponível</option>'; 
    }
    };
   ?>
Please help me out

I think we’re missing a
?in thedata:'estado_id='+estado_id.Try to put the?at the beginning ofestado_id. How so:data: '?estado_id='+estado_id.– William
If you’re sending with post, you don’t need to concatenate like this
data:'estado_id='+estadoid,just use it like this:data: {estado_id: estadoid},. And there is a cleaner way to feed select option using jquery– adventistaam