Динамический Зависимый раскрывающийся список Страна и штат в коде Igniter - PullRequest
0 голосов
/ 28 декабря 2018

Я работаю над проектом, который использует динамический или зависимый раскрывающийся список в CodeIgniter.Это моя логика noob: значение страны из представлений, передаваемых моделям, затем модели получают данные о состоянии с тем же значением страны из представлений, затем контроллеры получают данные состояния из этих моделей и снова передают их представлениям.И проблема в том, что в раскрывающемся списке состояния ничего не показано.Извините, я новичок в кодировании.

//This is the Controllers (Pkl.php)
$data['all_country'] = $this->Server_Model->get_country_model();
$data['all_state'] = $this->Server_Model->get_state_model();
$this->load->view('contents/page_dashboard', $data);

//This is the Models (Server_Model.php)
function get_country_model(){
            $db_jarlap = $this->load->database('gis_bali', TRUE);
            $db_jarlap->select("*");
            $db_jarlap->from("country");
            $que = $db_jarlap->get();
            return $que->result();
        }
function get_state_model(){
            $kakakoko = filter_input(INPUT_POST, 'country_id');
            $db_jarlap = $this->load->database('gis_bali', TRUE);
            $db_jarlap->select("*");
            $db_jarlap->from("state");
            $db_jarlap->where(" id_country = $kakakoko ");
            $que = $db_jarlap->get();
            return $que->result();
        }

//This is the Views Content (page_dashboard.php)
<script src="<?php echo base_url() ?>resources/js/jquery-3.3.1.min.js"</script>
<script>
            $(document).ready(function(){
            $('#formCountry').change(function(){
                  var country_id = $(this).val();

                  $.ajax({
                            url: "<?php echo base_url() ?            >application/models/Server_Model.php",
                        method: "POST", 
                        data: {country_id:country_id}, 
                        success: function(data) { 
                        $('#formState').html(data);
                                            }
                                    });
                                });
                            });
</script>

<select name="formCountry" id="formCountry">
<?php foreach($all_country as $semua_country): ?>
<option value="<?php echo $semua_country->id_country; ?>"><?php echo     $semua_country->nama_country; ?></option>
<?php endforeach; ?>
</select>

<select name="formState" id="formState" >
<?php foreach($all_state as $semua_state): ?>
<option value="<?php echo $semua_state->id_state; ?>"><?php echo $semua_state->nama_state; ?></option>
<?php endforeach; ?>
</select>

Спасибо за помощь.

1 Ответ

0 голосов
/ 28 декабря 2018

Вы не должны напрямую вызывать модель, вместо этого вызывайте контроллер Pkl, я предполагаю, что вы используете index() метод на Pkl контроллере:

$(document).ready(function () {
    $('#formCountry').change(function () {
        var country_id = $(this).val();

        $.ajax({
            url: "<?php echo base_url() ?>pkl", // using Pkl controller
            method: "POST",
            data: {
                country_id: country_id
            },
            success: function (data) {
                $('#formState').html(''); // empty the select option element
                $.each(data, function(){ // format each option returned from Pkl controller
                    $("#formState").append('<option value="'+ this.id_state +'">'+ this.nama_state +'</option>');
                });
            }
        });
    });
});  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...