JQuery验证数据存在于具有空格的表中

时间:2017-10-04 01:10:40

标签: javascript jquery codeigniter

我想如果一个数据已经存在于记录中它将被禁用我的保存按钮,到目前为止我设法做到这一点,但如果数据包含空间它不起作用,我相信这是因为通过JQuery发送数据会将空间更改为%20 如何克服这个问题?以下是我的代码

这是我的JQuery

<!-- Unique Data Validation -->
<script type="text/javascript">
$(document).ready(function(){
  $('#kProject').bind('keyup change',function(){
    var check1=0;
    var name = $(this).val();
    $.ajax({
      url:'project/cekData/master_kategori_project/kategori_project/'+name,
      data:{send:true},
      success:function(data){
        if(data==1){
          $('#report1').text('');
          $('.btn_save').prop('disabled',false);
          check1=1;
        }else{
          $('#report1').text('Project Exist');
          $('.btn_save').prop('disabled',true);
          check1=0;
        }
      }
    })
  })
})
</script>
<!-- End Unique Data Validation -->

这是我的控制器

public function cekData($table, $field, $data){
    $match = $this->project_m->read($table, array($field=>$data), null, null);
    if($match->num_rows() > 0){
        $report = 2;// exist
    }else{
        $report = 1;//not exist
    }
    echo $report;
}

这是我的模特

public function read($table, $cond, $ordField, $ordType){
    if($cond!=null){
        $this->db->where($cond);
    }
    if($ordField!=null){
        $this->db->order_by($ordField, $ordType);
    }
    $query = $this->db->get($table);
    return $query;
}

示例我的表如下所示,我的表中没有%20 ,所以当jQuery发送数据时,数据会像Jalan%20Tol当然Jalan%20Tol那样在我的表格中存在,它只存在Jalan Tol

enter image description here

2 个答案:

答案 0 :(得分:1)

PHP有一个内置函数,用于这样的事情 试试这种方式

public function cekData($table, $field, $data){
    $data = urldecode($data);
    $match = $this->project_m->read($table, array($field=>$data), null, null);
    if($match->num_rows() > 0){
        $report = 2;// exist
    }else{
        $report = 1;//not exist
    }
    echo $report;
}

答案 1 :(得分:0)

我相信它不是关于jQuery而是你正在使用的控制器。在PHP中,我多次使用%20data.serialize()函数来放置20%而不是spaces,但从来没有遇到过问题。您的控制器无法将20%识别为space。因此,您需要将20%更改为控制器将识别为space的值。