2016-07-07 2 views
0

Я пытаюсь отправить некоторые данные контроллеру CodeIgniter, но он показывает только пустой массив. Я также использую DataTables. Я не уверен, что я правильно отправляю данные. Это мой код:Сообщение Ajax для контроллера CodeIgniter не работает

JS

$("#prw").on('click', function(e){ 
    e.preventDefault(); 

    var url = window.location.origin + "/nsl/preview"; 

    $.ajax({ 
     url: url, 
     data: $("input[type='checkbox']:checked").serialize() 
    }).done(function(data){ 
     console.log("Response", data); 
    }); 
}); 

CONTROLLER

function preview() { 
    $post = $this->input->post(); 
    return $post; 
} 

HTML

<table id="offers" class="table table-striped table-bordered" cellspacing="0" width="100%"> 
     <thead> 
     <tr> 
      <th>...</th> 
      <th>...</th> 
      <th>...</th> 
      <th>...</th> 
      <th>...</th> 
     </tr> 
     </thead> 
     <tfoot> 
     <tr> 
      <th>...</th> 
      <th>...</th> 
      <th>...</th> 
      <th>...</th> 
      <th>...</th> 
     </tr> 
     </tfoot> 
     <tbody> 
     <?php foreach($data as $d): ?> 
     <tr> 
      <td><input type="checkbox" id="check" name="myCheckboxes[]" class="toggle" value="<?=$d->oid?>"></td> 
      <td><input type="text" id="rb" name="myText[]" class="toggle"></td> 
      <td><?=$d->fullname?></td> 
      <td><?=$d->published?></td> 
      <td><?=$d->expires?></td> 
     </tr> 
     <?php endforeach; ?> 
     </tbody> 
    </table> 
    <input type="submit" id="prw" class="btn btn-info" value="Preview"> 

Пожалуйста, я признателен за любую помощь.

+0

Обычно вызовы ajax должны нормально работать с соответствующими дорожками MVC. Не забудьте указать правильный контроллер/метод. Затем попробуйте сначала отладить ajax с помощью .beforeSend() и посмотреть, прекрасно ли ваши данные «выглядят». Далее - упростите свой метод контроллера, чтобы вернуть $ _POST [] - это даст вам уверенность в том, что все работает по назначению – wick3d

ответ

1

Некоторые вещи, чтобы проверить: -

  1. Внутри вызова Ajax, говоря type : 'post'

  2. О функции мыши, попробуйте

    оповещения ($ ("вход [тип = 'флажок' ]: checked "). serialize());

    и проверьте, получаете ли вы значения, как ожидалось?

  3. Открыть Firebug, нажать кнопку «Консоль», выполнить кнопку щелчка, посмотреть, что все значения присутствуют на вкладке POST URL-адреса внутри консоли.

  4. Внутри контроллера

    $ = $ размещать этом-> вход-> сообщение ('myCheckboxes'); print_r ($ post);

Смежные вопросы