AJAX Codeigniter получение данных для модальных - PullRequest
0 голосов
/ 04 февраля 2020

Я некоторое время пользуюсь CodeIgniter и пытаюсь заставить модал работать. Я использую библиотеку bootstrap, поэтому сама модель довольно проста для демонстрации. Дело в том, что я пытаюсь загрузить его с динамической c информацией из базы данных, используя ajax. Но я не могу вызвать это. Мой скрипт ничего не делает, я пытался уже довольно давно.

 function fun(control){
   $.ajax({
        url:'<?=base_url()?>admin/proveedores/userDetails/'+control.id,
        method: 'post',
        data: {uid: control.id},
        dataType: 'json',
        success: function(response){
         var len = response.length;

         if(len > 0){
          // Read values
          var uname = response[0].razon_social;
          var name = response[0].cuit;
          var email = response[0].rubro;

          $('#suname').text(uname);
          $('#sname').text(name);
          $('#semail').text(email);
 }
</script>

HTML PART

<div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <div >
            Username : <span id='suname'></span><br/>
            Name : <span id='sname'></span><br/>
            Email : <span id='semail'></span><br/>
           </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>

    </div>
  </div>

Вызов функции

<tr id="<?= $e['id'] ?>" onclick="fun(this)" data-toggle="modal" data-target="#myModal" >

Контроллер

public function userDetails($cid){
        // POST data
        //  $postData = $this->input->post();

          // get data
          $data = $this->model_proveedores->get($cid);

          echo json_encode($data);
    }

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Ваш ответ JSON закодирован. Вы должны декодировать это, прежде чем использовать его как объект.

response=JSON.parse(response);
0 голосов
/ 05 февраля 2020

Я думаю, это будет полезно для вас. Пожалуйста, держите модальное содержимое внутри div с id myModal и вызывайте ajax в рамках действия модального шоу.

The Modal

<div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog" role="document">
        // your modal content
    </div>
</div>

Кнопка вызова

  <tr data-id="<?= $e['id'] ?>" data-toggle="modal" data-target="#myModal">

The Script

var modal = $("#myModal");
modal.on('show.bs.modal', function (event) {
    var button = $(event.relatedTarget);
    var id      = button.data('id'); 

    $.ajax({
        url      : '<?= base_url() ?>admin/proveedores/userDetails/'+id,
        type     : 'post',
        dataType : 'json',
        data     : { uid: id},
        success  : function(response)
        {
            var len = response.length;

            if(len > 0){
                // Read values
                var uname = response[0].razon_social;
                var name = response[0].cuit;
                var email = response[0].rubro;

                $('#suname').text(uname);
                $('#sname').text(name);
                $('#semail').text(email);
            }
        },
        error    : function(xhr)
        {
            console.log(xhr)
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...