Как я могу передать две переменные в URL Ajax в контроллер codeigniter? - PullRequest
1 голос
/ 15 марта 2019

Я работаю над системой управления школой. Я просто создаю информацию о студентах по их классу и разделу. Я использую контроллер ajax + codeigniter, но я не могу передать две переменные в вызове ajax для поиска 2 параметров.

Мой код Ajax

<script>
                $(document).ready(function () {
                    $('#example').DataTable({
                        'paging': true,
                        'searching': true,
                        'ordering': true,
                        'autoWidth': false
                    });
                    $('#student').click(function (event) {
                        event.preventDefault();
                        var xclass = $('.sclass').val();
                        var section = $('.section').val();

                        //
                        $.ajax({
                            url: "<?php echo base_url(); ?>Admission/fetchStudent/",
                            type: "POST",
                            data: {'xclass': xclass, 'section':section},
                            datatype: 'json',
                            success: function (data) {
                                $("#resultlist").html(data);
                            }
                        });
                    });
                }); //event.preventDefault(); 

            </script>

Мой контроллер

public function fetchStudent($class,$section){
    $this->load->model('Admission_model');
    $data = $this->Admission_model->fetchStudentmodel($class,$section);
    echo '<pre>';
    print_r($data);
    exit();
    echo json_encode($data);
}

Моя модель

public function fetchStudentmodel($x,$y) {
    $uid = $this->session->userdata('user_id');
    $data = $this->db->select('*')
            ->from('student')
            ->where(['user_id' => $uid,'class'=>$x, 'section'=>$y])
            ->get();

    if ($data->num_rows() > 0) {
        return $data->result();
    } else {
        return 'No data Available';
    }
}

Посмотри на это изображение, тогда ты сможешь понять, что я хочу сделать enter image description here

Ответы [ 2 ]

3 голосов
/ 15 марта 2019

В вашем случае вы можете передать 2 значения в параметрах как:

data: { key1: value1, key2: value2 }

И вы можете получить их в вашем контроллере, используя $_POST

Но в вашем примере вы отправляете только 1 параметр и не получаете его в своем контроллере, вы используете ваш URL-адрес для получения класса.

В вашем файле контроллера вы можете просто получить значения в $_POST, вы можете проверить оба значения с помощью:

echo '<pre>';
print_r($_POST);

Вы получите оба значения в $_POST, тогда вы можете получить доступ, используя $_POST['key1'] или $_POST['key2']

Еще одна вещь, Я не знаю, почему вы используете одинарную кавычку для ключа вашего параметра, я думаю, он будет преобразован в строковую переменную.

Второе решение для вашего примера: var xclass = $ ('. sclass'). val (); var section = $ ('. section'). val ();

data: 'class='+xclass+'&section='+section, // here you can use quote and & for separation.
1 голос
/ 15 марта 2019

Попробуйте,

$.ajax({
      url: "<?php echo base_url(); ?>Admission/fetchStudent/",
      type: "POST",
      data: ({xclass: xclass, section:section}),//changes
      datatype: 'json',
      success: function (data) {
             $("#resultlist").html(data);
      }
 });
public function fetchStudent(){//changes
    $this->load->model('Admission_model');
    $class  = $this->input->post('xclass');//changes
    $section  = $this->input->post('section');//changes
    $data = $this->Admission_model->fetchStudentmodel($class,$section);
    echo '<pre>';
    print_r($data);
    exit();
    echo json_encode($data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...