0

在这里,我正在尝试制作一个使管理员能够添加新公司的表单,我需要实现表单验证,然后将数据插入表(company_details),这就是我所做的,使用 codeigniter 和 ajax,我不是确定是否有其他简单的方法可以在不使用 ajax 的情况下执行此过程,所以如果有的话,我会很感激你帮助我。这是我的代码,但现在当我按下创建按钮时,实际上并没有发生,我得到“错误:加载资源失败:服务器响应状态为 500(内部服务器错误)。公司:1”

Company.php 控制器

    <?php
    class Company extends CI_Controller
    {
    function __construct()
    {
        parent::__construct();
        if(!$this->session->userdata('admin'))
          redirect('admin');
          $this->load->model('company_model');
    }

    function index()
    {
       $data['company'] = $this->company_model->getCompanyDetails();
       $this->load->view('admin/company', $data);
    }
    
    

    function validation()
    {
      $this->load->helper(array('form', 'url'));
      $this->load->library('form_validation');
      $this->form_validation->set_rules('Cname' , 'Company Name' , 'required');
      $this->form_validation->set_rules('shname' , 'Short Name' , 'required');
      $this->form_validation->set_rules('regNo' , 'Registration No' , 'required|valid_regNo');

      if($this->form_validation->run())
      {
        $this->company_model->create();
        $array = array(
          'succsee' => '<div class="alert alert success">Your Company Added Sucessfully</div>'
        );
        redirect('admin/company/');
      }
      else
      {
        $array = array(
          'error'                  =>   true,
          'Cname_error'            =>   form_error('Cname'),
          'shname_error'           =>   form_error('shname'),
          'regNo_error'            =>   form_error('regNo'),
        );

      }
      echo json_encode($array);

    }
}

company.php 查看

    <div class="companyAdd" style="display: none;">
        <h2 class="heading">Add Company</h2>
        <span  action="<?php echo site_url('admin/staff/validate');?>" id="success_message"></span>
         <form  method="post" id="AddCompanyForm">
        <div class="row">
               <div class="form-group col-md-4">
                  <label for="email">Company Name</label>
                  <input type="text" class="form-control" id="Cname" placeholder="Name" name="Cname">
                  <span id="Cname_error" class="text-danger"></span>
                </div>
                <div class="form-group col-md-4">
                  <label for="pwd">Short Name</label>
                  <input type="text" class="form-control" id="shname" placeholder="Short Name" name="shname">
                  <span id="shname_error" class="text-danger"></span>
                </div>
                <div class="form-group col-md-4">
                  <label for="pwd">Registration No</label>
                  <input type="text" class="form-control" id="regNo" placeholder="01234567" name="regNo">
                  <span id="regNo_error" class="text-danger"></span>
                  
                </div>
            <div class="col-md-12">
             <div class="btn-section float-right">
                <button class="btn btn-outline-primary" type="submit"><i class="fa fa-plus-circle" aria-hidden="true" id="Ccreat"></i> Create</button>
                <button class="btn btn-danger float-right" id="cancelCompany" type="button" onClick="window.location.href=admin/company"><i class="fa fa-plus-circle" aria-hidden="true"></i> Cancel</button>
             </div>
            </div>
          </div>
        </form>
    </div>
  </div>
 </div>

这是我在 company.php 视图中的脚本标签

<script>
 $(document).ready(function(){

  $('#AddCompanyForm').on('submit', function(event){
    event.preventDefault();
    $.ajax({
      url:"<?php echo site_base();?>admin/company/validation",
      method:"POST",
      data:$(this).serialize(),
      dataType:"json",
      beforeSend:function(){
        $('#Ccreat').attr('disabled', 'disabled');
      },
      success:function(data)
      {
        if(data.error)
        {
          if(data.Cname_error != '')
          {
            $('#Cname_error').html(data.Cname_error);

          }
        else
        {
          $('#Cname_error').html('');
        }
        if(data.shname_error != '')
        {
          $('#shname_error').html(data.shname_error);
        }
        else
        {
          $('#shname_error').html('');
        }
        if(data.regNo_error != '')
        {
          $('#regNo_error').html(data.regNo_error);
        }
        else
        {
          $('#regNo_error').html('');
        }
      }
      if (data.success)
      {
        $('#success_message').html(data.success);
        $('#Cname_error').html('');
        $('#shname_error').html('');
        $('#regNo_error').html('');
        $('#AddCompanyForm')[0].reset();
      }
      $('#Ccreat').attr('disabled',false);
      }
    })
  });
 });
</script>

这是 Company_model.php

<?php
class Company_model extends CI_Model
{
    //table name: company_details
    function getCompanyDetails()
    {
    return $this->db->get('company_details')->result();
    }
     function create()
     {
         $arr['company_name'] = $this->input->post('Cname');
         $arr['short_name'] = $this->input->post('shname');
         $arr['registration_no'] = $this->input->post('regNo');
         $this->db->insert('company_details',$arr);
     }

}

这是我第一次使用 codeigniter 和 ajax,如果有人可以帮助我解决它,我将不胜感激。

4

0 回答 0