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