как перестать перенаправлять на страницу контроллера при отправке данных формы через пост ajax в codeigniter - PullRequest
0 голосов
/ 06 апреля 2019

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

мой контроллер - profile.php

function save()
 {
      $response = array();
     $this->form_validation->set_rules('fname', 'Title cant be empty ', 'required');
     if ($this->form_validation->run() == TRUE)
        {
             $param = $this->input->post();
             unset($param['submit']);
             $param['rid']=$this->session->userdata('id');  

            $profile_id = $param['profile_id'];
            unset($param['profile_id']);
            if($profile_id == 0)
            {

             $inserts = $this->profile_model->insert($param);
             if( $inserts>0){
                 $response['status'] = TRUE;
                 $response['notif'] ="success add profile details";
             }else{
                    $response['status'] = FALSE;
                    $response['notif']  = 'Server wrong, please save again';
            }
            }else{

            }

     }else{
            $response['status'] = FALSE;
            $response['notif']  = validation_errors();
     }
 echo json_encode($response);

 } 

представление - profile_new_user.php

             ?>
    <form method="POST" id="form_profile" action="<?php echo base_url().'profile/save'; ?>">
     <input type="hidden" name="profile_id" value="0"><!-------event id---------->
     <div class="form-group">

                        <label>Prefix</label>
                         <select name="prefix" class="form-control">
.
.
.
                     </div>
     <div class="form-group">
      <input type="submit" name="submit" value="Save" class="btn btn-info" />
     </div>
    </form>
 <script type="text/javascript">
 $(document).ready(function() {

 $("#form_profile").submit(function(event){
     event.preventDefault(); 
    $.ajax({
  method: "POST",
  url: $(this).attr("action"),
  dataType :'JSON',
  data: $(this).serialize(),
   success: function(data)
   { 

   if(data.status){   
       alert('ok');
   }else{
        alert('not ok');
   }
   }
})
});
   });

модель - profile_model.php

function insert($data)
 {
  $this->db->insert('user_profile', $data);
  return $this->db->insert_id();
 }

после нажатия кнопкистраница кнопки перенаправления перенаправляет на URL - http://localhost/ptm6/profile/save, и на странице отображается

{"status": true, "notif": "success add profile details"}

в виде обычного текста.

Я ожидаю показа сообщения с предупреждением без перенаправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...