Метод контроллера не обнаруживает никаких параметров - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь отправить идентификатор в моем URL, но мой контроллер не получает это значение

$("#ChangeSlideForm").on("submit", function(){

          $.ajax({
            type: "POST",
            url: base_url + "Visualiser/ChangeSlide/21",
            success: function (response) {
              alert(response);
                // $("#deleteConfirm").modal('hide');
                // jQuery(function RefreshPageAdd($){
                //     $('#deleteConfirm').on('hidden.bs.modal', function (e) {
                //       location.reload();
                //     });
                // });

            }
          });
        });

My View

<div id="bodyChange" class="modal-body">
  <form id = "ChangeSlideForm" action="<?php echo base_url() ?>Visualiser/ChangeSlide" enctype="multipart/form-data" method="post" accept-charset="utf-8">
  <label class="btnSlide btn btn-outline-success">
    Zip <input class="file" name="file[]" type="file" hidden>
  </label>
  <label class="btnSlide btn btn-outline-success">
    Csv <input class="file" name ="file[]" type="file" hidden>
  </label>
  </div>
  <div class="modal-footer">
  <div class="col-md-12 text-center"> 
    <button type="submit" class="btn btn-primary col-md-6">Ajouter</button>
  </div>
  </form>

Заголовок моего контроллера:

    public function ChangeSlide($id){
     print_r($id);
    }

Когда я помещаю идентификатор непосредственно в URL, тогда параметр доступен, в противном случае, когда я передаю с ajax, параметр не обнаруживается.

Ответы [ 4 ]

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

Когда вы передаете значение с помощью ajax, тогда метод контроллера получает это значение как $ this-> input-> post ('id'); не как параметр.

Поэтому необходимо добавить следующее к методу

publi c функция ChangeSlide ($ id = "") {

}

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

Попробуйте это

 public function ChangeSlide(){
 print_r($this->uri->segment(3));
 }
0 голосов
/ 27 февраля 2020

Отсутствует параметр data в $.ajax(). Таким образом, ваш ajax не отправил никаких данных на ваш контроллер

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

Попробуйте: -

HTML

<form id="ChangeSlideForm" action="<?php echo base_url() ?>Visualiser/ChangeSlide/21" enctype="multipart/form-data" method="post" accept-charset="utf-8">
  <div id="bodyChange" class="modal-body">
    <label class="btnSlide btn btn-outline-success"> Zip
      <input class="file" name="file[]" type="file" hidden>
    </label>
    <label class="btnSlide btn btn-outline-success"> Csv
      <input class="file" name="file[]" type="file" hidden>
    </label>
  </div>
  <div class="modal-footer">
    <div class="col-md-12 text-center">
      <button type="submit" class="btn btn-primary col-md-6">Ajouter</button>
    </div>
  </div>
</form>

Сценарий:

<script type="text/javascript">
$(document).ready(function(){ 
    $("#ChangeSlideForm").on("submit", function(e){
        e.preventDefault();
        $.ajax({
            url     : $(this).attr('action'),
            type    : $(this).attr('method'),
            data    : $(this).serializeArray(), 
            success : function(data)
            {
                console.log(data)
            },
            error: function (xhr)
            {
                console.log(xhr)
            }
        });
    });
})
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...