我想如果一个数据已经存在于记录中它将被禁用我的保存按钮,到目前为止我设法做到这一点,但如果数据包含空间它不起作用,我相信这是因为通过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
答案 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中,我多次使用%20
和data.serialize()
函数来放置20%
而不是spaces
,但从来没有遇到过问题。您的控制器无法将20%
识别为space
。因此,您需要将20%
更改为控制器将识别为space
的值。