Фильтрация данных таблицы с использованием Ajax в Codeignitor - PullRequest
0 голосов
/ 26 сентября 2018

Я не могу отфильтровать данные таблицы с помощью Ajax.Когда я выбираю BANK CREDIT из выпадающего списка, он должен извлекать данные сотрудника с modeofpay (столбец таблицы) как «BANK CREDIT», а когда я выбираю NEFT, он должен отображать данные сотрудника с modeofpay (столбец таблицы) как «NEFT».На данный момент ничего не происходит, когда я выбираю выпадающий список.

Контроллер:

public function filter($key = '')
{
  $this->load->helper('url');

  if ( $key == 'BANK CREDIT' ) {
    $this->load->model('JcMeetingExpense_model');
    $data = $this->JcMeetingExpense_model->getCredit($key);
  } 
  else 
  {
    $this->load->model('JcMeetingExpense_model');
    $data = $this->JcMeetingExpense_model->getNeft($key);
  }
  echo json_encode($data);
}

Модель:

public function getCredit($key)
{
  $sql = "SELECT * FROM employee WHERE modeofpay = '$key'";
  $data = $this->db->query($sql);
  return $data->result_array();   
}

public function getNeft($key)
{
  $sql = "SELECT * FROM employee WHERE modeofpay = '$key'";
  $data = $this->db->query($sql);
  return $data->result_array();   
}

Вид:

<script type="text/javascript">
  var paymode = $("#mode").change(function(){
    $.ajax({
      type:"POST",
      url:url:'<?php echo base_url("JcMeetingExpense/filter/key/") ? 
               >'+paymode,
      data:"key="+paymode,
      dataType:'json',
      success:function(data){
        $("#viewjcexpense").html(data);
      },
      error:function(XMLHttpRequest){
        alert(XMLHttpRequest.responseText);
      }
    });
  });
</script>

<select name="mode" id="mode" >
  <option value="BANK CREDIT">CREDIT</option>
  <option value="NEFT">NEFT</option>
</select>

1 Ответ

0 голосов
/ 26 сентября 2018

ваше onchange событие работает?давайте проверим с

$("#mode").change(function(){
alert(1);
});

, если при выборе опции будет отображаться предупреждение, которое означает, что ваше событие работает,

, теперь, если это работает нормально, давайте попробуем поиграть с ajax и немного перекодироватьздесь я использовал метод записи

[ПРОСМОТР]

$("#mode").change(function(){
     $.ajax({
                type  : 'POST',
                url   : '<?=base_url(); ?>JcMeetingExpense/filter/',
                data  : { key : $("#mode").val() },
                success : function(data){
                       console.log(data);//let's check on console what's response is 
                    }
                });
 })

[КОНТРОЛЛЕР]

public function filter()
{
  $this->load->helper('url');


    $this->load->model('JcMeetingExpense_model');
    $dataKey = $this->JcMeetingExpense_model->get_data_by_key();


  echo json_encode($datadataKey);
}

[МОДЕЛЬ]

 public function get_data_by_key()
    {
     //do post here let's say
     $key = $this->input->post("key");
// i looked your query is vulnerable to SQL Injection 
/*      $sql = "SELECT * FROM employee WHERE modeofpay = '$key'"; 
      $data = $this->db->query($sql);
      return $data->result_array();   */
      //so let's use query builder 
      $this->db->select("*");
      $this->db->from("employee");
      $this->db->where("modeofpay",$key);
      $q = $this->db->get();
      return $q->result_array();
    }

сейчас проверьтеответ в консоли

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