Зависимый раскрывающийся список Dynami c в codeigniter - PullRequest
0 голосов
/ 03 августа 2020

У меня есть три Dynami c зависимых раскрывающихся списка в Codeigniter: -

  1. Один из них представляет company names
  2. Согласно компании I выберите Я хочу показать менеджеров этой конкретной компании в одном из других раскрывающихся меню
  3. Персонал компании показан в моем третьем раскрывающемся списке.

И менеджер, и персонал сохраняются в одном столбце с именем role_name в role_settings таблице базы данных.

Пока я продолжаю свой код, чтобы получить список менеджеров в раскрывающемся списке, но когда я запускаю свой код, ничего не происходит, и я действительно не знаю, как получить список сотрудников в другом раскрывающемся списке. Вот мой код.

Проект. php Контроллер: -

<?php
class Project extends CI_controller
{
function __construct()
{
    parent::__construct();
    // if(!$this->session->userdata('admin'))
    // redirect('admin');
     $this->load->model('project_model');
}

 function index ()
{
   
  $data['project'] = $this->project_model->getProjectDetails();
  $this->load->view('admin/project/index',$data);

}
function add()
{
  $this->form_validation->set_rules('Pname', 'Project Name', 'required');
  $this->form_validation->set_rules('Cname', 'Client Name' , 'required');
  $this->form_validation->set_rules('PassignTo', 'Company', 'required');
  $this->form_validation->set_rules('manager', 'Manager' , 'required');
  $this->form_validation->set_rules('staff', 'Support Staff', 'required');
  
  $data['company_name'] = $this->project_model->getAllCompanyName();
  $data['project'] = $this->project_model->getProjectDetails();

  if ($this->form_validation->run() ==true)
  {
    $this->project_model->add(); 
    $this->session->set_flashdata ('success','Project Added Sucessfully');
    redirect('admin/project/index',$data);
  }
  else{
    $this->load->view('admin/project/add',$data);
  }

}


function edit($id)
 {
   $data['project'] = $this->project_model->getById($id); 
   $data['company_name'] = $this->project_model->getAllCompanyName();

   $this->load->view('admin/project/edit', $data);

}
function update($id)
{
  $this->project_model->update($id); 
  $this->session->set_flashdata ('success','Project updated Sucessfully');
  redirect('admin/project/index');

}
function delete($id)
{
   $this->project_model->delete($id); 
   $this->session->set_flashdata ('success','Project Deleted Sucessfully');
   redirect('admin/project/index');

}
function getAllManger()
{
  print_r($_REQUEST);
   die;
  if ($this->input->post('company_id'))
  {
    echo $this->project_model->
          getAllManger($this->input->post('company_id'));
  }
}

}

Project_model. php Код модели: -

<?php
class Project_model extends CI_Model
{
function getProjectDetails()
{
//table  (projects)
return $this->db->get('projects')->result();
}
function getById($id)
{
   return $this->db->get_where('projects',array('id'=>$id))->row();

}
function add()
{
    $arr['project_name'] = $this->input->post('Pname');
    $arr['client_name'] = $this->input->post('Cname');
    $arr['company'] = $this->input->post('PassignTo');
    $arr['project_manager'] = $this->input->post('manager');
    $arr['support_staff'] = $this->input->post('staff');
    $this->db->insert('projects',$arr);

}
 function update($id)
{
    $arr['project_name'] = $this->input->post('Cname');
    $arr['client_name'] = $this->input->post('regNo');
    $arr['company'] = $this->input->post('company');
    $arr['project_manager'] = $this->input->post('manager');
    $arr['support_staff'] = $this->input->post('staff');
    $this->db->update('projects',$arr);

}
function delete($id)
{
    $this->db->where(array('id'=>$id));
    $this->db->delete('projects');
}

function getAllCompanyName()
{
  $this->load->model('company_model');
  $this->company_model->getCompanyDetails(); 
  $this->db->order_by('company_name', 'ASC');
  $query = $this->db->get('company_details');

  //$query = $this->db->query('SELECT company_name FROM company_details');

   return $query->result();
}

function getAllManger($company_id)
{
    $this->db->where('id',$company_id);
    $this->db->oredr_by('role_name', 'ASC');
    $query = $this->db->get('roles_settings');
    $output = '<option value="">Select Mangaer</option>';
    foreach($query->result() as $row)
    {
        $output .= '<option value=" '.$row->manager_id.'">'.$row->project_manager. '</option>';
    }
    return $output;
}
function getAllStaff()
{

}
}

доп. php Просмотр

    <?php
    $this->load->view('admin/header');
    ?>
     <div class="main-sec">
     <div class="row">
    <div class="col-md-8">
        <nav>
            <ol class="breadcrumb">
                <li class="breadcrumb-item"><a href="<?php echo site_url ('admin/dashboard');?>">Home</a></li>
                <li class="breadcrumb-item"><a href="<?php echo site_url ('admin/project');?>">Projects</a></li>
                <li class="breadcrumb-item active">Add Projects</li>
            </ol>
        </nav>
      </div>
      <div class="col-md-4">
       <!-- <button class="btn btn-outline-primary float-right"  id="addProjects"><i class="fa fa-plus-circle" aria-hidden="true"></i> Add Projects</button> -->
        <?php
        if($this->session->flashdata('success'))
        {
          ?>
                <div class="alert alert-success" role="alert">
                   <?php
                echo $this->session->flashdata('success');
                ?>
                </div>
                <?php
                }?>
      </div>
      </div>
      <div class="main-sec-contant">
           <div class="ProjectsAdd" >
        <h2 class="heading">Add Project</h2>
        <?php echo form_open('project_add'); ?>
        <div class="row">
               <div class="form-group col-md-4">
                  <label for="text">Project Name</label>
                  <input type="text" class="form-control" id="Pname" placeholder="Name" name="Pname" value="<?php echo set_value('Pname'); ?>">
                  <div class="alert-danger"><?php echo form_error('Pname'); ?></div>
                </div>
                <div class="form-group col-md-4">
                  <label for="pwd">Client Name</label>
                  <input type="text" class="form-control" id="Cname" placeholder="Client Name" name="Cname" value="<?php echo set_value('Cname'); ?>">
                  <div class="alert-danger"><?php echo form_error('Cname'); ?></div>
                </div>
                <div class="form-group col-md-4">
                  <label for="pwd">Project Assign To</label>
                  <select class="form-control" id="company" name="PassignTo" value="<?php echo set_value('PassignTo'); ?>">
                  <div class="alert-danger"><?php echo form_error('PassignTo'); ?></div>
                    <?php 
                    foreach($company_name as $row )
                    {
                        echo '<option value="'.$row->id.'">'.$row->company_name.'</option>';
                    }
                   ?>
                  </select>

                </div>
                <div class="form-group col-md-4">
                  <label for="pwd">Project Manager</label>
                  <select class="form-control" id="manager" name="manager" value="<?php echo set_value('manager'); ?>">
                    <div class="alert-danger"><?php echo form_error('manager'); ?></div>
                    <option value="">Select Mangaer</option>
                
                  </select>
                </div>
                <div class="form-group col-md-4">
                  <label for="pwd">Add Support Staff</label>
                  <select id="addStaffMulti" multiple="multiple" name="staff" value="<?php echo set_value('staff'); ?>">
                  <div class="alert-danger"><?php echo form_error('staff'); ?></div>
                    <option value="">Select Staff</option>    
                </select>
                </div>
           <div class="col-md-12">
            <div class="btn-section float-right">
                <button class="btn btn-outline-primary" type="submit" name="create" ><i class="fa fa-plus-circle" aria-hidden="true"></i> Create</button>
               <a href="<?php echo site_url ('project');?>"> <button class="btn btn-danger float-right" id="cancelProjects" type="button" name="cancel" onClick="window.location.href=admin/project" ><i class="fa fa-plus-circle" aria-hidden="true"></i> Cancel</button>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>
     </div>
 

        <?php
         $this->load->view('admin/footer');
         ?>

JQUERY AJAX КОД: -

 <script>
   $(document).ready(function()
  {
  $('#company').change(function(){
    var company_id = $('#company').val();
    if(company_id != '')
    {
      $.ajax({
        url:"<?php echo  base_url();?>
             project/getAllManger",
        method:"POST",
        data:{company_id:company_id },
        success:function(data)
        {
          $('#manager').html(data);
          $('#addStaffMulti').html(' <option value="">Select Staff</option>');
        }

      });

    }
    else
    {
      $('#manager').html('<option value="">Select Mangaer</option>');
      $('#addStaffMulti').html('<option value="">Select Staff</option>');

    }
  });

  $()


  });
});
</
<script>

И изображение ниже - это изображение role_settings таблицы в базе данных, я в основном пытаюсь отобразить все managers из role_name столбца в моем раскрывающемся списке диспетчера и отобразить остальную часть role_name данные столбца на раскрывающийся список Добавить материал .

введите описание изображения здесь

1 Ответ

0 голосов
/ 19 августа 2020

Проблема решена путем внесения следующих изменений в мой код, а также выполнена проверка формы. Проект. php контроллер

<?php
class Project extends CI_controller
{
function __construct()
{
    parent::__construct();
    // if(!$this->session->userdata('admin'))
    // redirect('admin');
     $this->load->model('project_model');
}

public function index ()
{
  $data['company_name'] = $this->project_model->getAllCompanyName();
  $data['project'] = $this->project_model->getProjectDetails();
  $this->load->view('admin/project/index',$data);

}
function add()
{
  $this->form_validation->set_rules('Pname', 'Project Name', 'required');
  $this->form_validation->set_rules('Cname', 'Client Name' , 'required');
  $this->form_validation->set_rules('PassignTo', 'Company', 'required');
  $this->form_validation->set_rules('manager', 'Manager' , 'required');
  $this->form_validation->set_rules('staff', 'Support Staff', 'required');
  
  $data['company_name'] = $this->project_model->getAllCompanyName();
  $data['project'] = $this->project_model->getProjectDetails();

  if ($this->form_validation->run() ==true)
  {
    $this->project_model->add(); 
    $this->session->set_flashdata ('success','Project Added Sucessfully');
    redirect('admin/project/index',$data);
  }
  else{
    $this->load->view('admin/project/add',$data);
  }

}
function edit($id)
 {
   $data['project'] = $this->project_model->getById($id); 
   $data['company_name'] = $this->project_model->getAllCompanyName();

   $this->load->view('admin/project/edit', $data);

}
function update($id)
{
  $this->project_model->update($id); 
  $this->session->set_flashdata ('success','Project updated Sucessfully');
  redirect('admin/project/index');

}
function delete($id)
{
   $this->project_model->delete($id); 
   $this->session->set_flashdata ('success','Project Deleted Sucessfully');
   redirect('admin/project/index');

}
 public function getManager()
{
  //echo json_encode ("sdf"); die;
   //print_r($_REQUEST);
    //die;
  $company_name = $this->input->post('company_name');
  $getallmanager = $this->project_model->get_manager_query($company_name);
  $getallstaff = $this->project_model->get_all_staff($company_name);
  $all_the_mangers = '';
  $all_the_staffs = '';
  if(count($getallmanager)>0)
  {        
    foreach ($getallmanager as $manager){
      $all_the_mangers .='<option value="' .$manager->role.'">'.$manager->first_name.'</option>';
    }
    
  }
  if(count($getallstaff)>0)
  {        
    foreach ($getallstaff as $staff){
      $all_the_staffs .='<option value="' .$staff->role.'">'.$staff->first_name.'</option>';
    }
    
  }
  $result = array('manager'=>$all_the_mangers,'staffs'=>$all_the_staffs);
  echo json_encode($result);die;
  
}

}

И добавлен ниже javaScript в конце моего проекта. php вид.

<script type="text/javascript">
$(document).ready(function(){
 $('#company').on('change' , function() {
var company_name = $(this).val();
if(company_name == '')
{
  $('#manager').prop('disabled', true);
  $('#addStaffMulti').prop('disabled', true);

}
else
{
   $('#manager' ).prop('disabled', false);
   $('#addStaffMulti').prop('disabled', false);
  //var url = "<?php echo base_url()?>getManager";
  //alert(url);
  //return false;
   $.ajax({
     url:"<?php echo base_url()?>getManager",
     type: "POST",
     data: { 'company_name' : company_name},
     dataType:'json',
     success: function(data){
       //alert('ok');
       console.log(data);
       $('#manager').html(data.manager);
       $('#addStaffMulti').html(data.staffs);
       $('#addStaffMulti').multiselect('rebuild');
     },
     error: function(event){
       console.log(event);
       alert('Error occur...');
     }
   });
    }
  });
 });
 </script>
...