通过Codeigniter中的Ajax发布提交表单数据时如何停止重定向到控制器页面

时间:2019-04-06 17:25:21

标签: php jquery html ajax codeigniter

我正在尝试使用Ajax发布从视图向控制器提交表单数据并返回成功消息。并且在我的视图中,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();
 }

点击“提交”按钮后,页面重定向到网址-http://localhost/ptm6/profile/save,页面显示

{“状态”:true,“ notif”:“成功添加个人资料详细信息”}

以纯文本格式。

我希望显示警报消息而无需任何重定向。

0 个答案:

没有答案