Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery验证数据存在于带有空格的表中_Javascript_Jquery_Codeigniter - Fatal编程技术网

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

Javascript JQuery验证数据存在于带有空格的表中,javascript,jquery,codeigniter,Javascript,Jquery,Codeigniter,我想如果数据已经存在于记录中,它将被禁用我的保存按钮,到目前为止我设法做到了这一点,但是如果数据包含空格,它就不起作用了,我相信这是因为通过JQuery发送数据会将空格更改为%20如何克服这个问题?下面是我的代码 这是我的JQuery <!-- Unique Data Validation --> <script type="text/javascript"> $(document).ready(function(){ $('#kProject').bind('key

我想如果数据已经存在于记录中,它将被禁用我的保存按钮,到目前为止我设法做到了这一点,但是如果数据包含空格,它就不起作用了,我相信这是因为通过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 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


我相信这与jQuery无关,而是与您使用的控制器有关。在PHP中,我多次使用了
%20
data.serialize()
函数,该函数也将
20%
放在
空格中,但从未遇到问题。您的控制器无法将
20%
识别为
space
。因此,您需要使用一个值来更改
20%
,您的控制器会将该值识别为
space

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;
}

因此%20在success
data
变量中?@PhaniKumarM yes当我使用JQuery发送数据时,如果
data
有一个类似
This is data
的空格,那么数据会将空格改为
This%20Is%20Data
您正在根据
data
变量的值禁用
save
按钮。通过ajax发送的是
名称
,来自ajax调用的响应存储在
数据
中。您正在if语句中检查
data==1
,如果不等于
1
,则禁用该按钮。我不明白这个问题。当您执行
console.log(data)
时,您得到的响应是什么?我的问题是,数据发送了一个带有%20的url,我想让%20消失查看我的editIn JavaScript您可以使用
decodeURI(data)
对URI进行解码。我刚刚度过了忙碌的一周,所以我今天就可以尝试这段代码了,是的,它工作起来很简单,但也很有效,非常感谢
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;
}