我希望我的表单直接使用ajax和jQuery检查我的输入,但它无法正常工作
这是我的表单输入
<div class="form-group">
<label for="exampleInputEmail1">NIP</label>
<input type="text" name="nip" id="nip" class="form-control" placeholder="NIP" maxlength="18" required>
<span id="pesannip" name="pesannip"></span>
</div>
来自上面输入表单的jQuery
<script>
$(document).ready(function(){
$('#nip').blur(function(){
$('#pesannip').html('sedang mengecek');
var nip = $(this).val();
var len=nip.length;
if (len==0) {
$('#pesannip').text("NIP tidak boleh kosong");
$('#nip').css('border', '3px #C33 solid');
}
else {
if (!valid_notelp(nip)) {
$('#pesannip').text("NIP tidak valid");
$('#nip').css('border', '3px #C33 solid');
}
else if (len>0 && len<18) {
$('#pesannip').text("NIP terlalu pendek, harus 18 angka");
$('#nip').css('border', '3px #C33 solid');
}else {
$.ajax({
type : 'POST',
url : "<?php echo base_url('index.php/dosen/cek_nip_dosen') ?>",
data : 'nip='+nip,
success : function(data)
{
if (data=='gada')
{
$("#pesannip").html("NIP bisa digunakan");
$('#nip').css('border', '3px #090 solid');
}
else if(data=='ada')
{
$("#pesannip").html("NIP sudah digunakan oleh pengguna lain");
$('#nip').css('border', '3px #C33 solid');
}
}
});
}
}
});
function valid_notelp(notelp){
var pola = new RegExp(/^[0-9-+]+$/);
return pola.test(notelp);
}
});
</script>
我的模型名为model_dosen
public function cek_nip($nip)
{
$cek = $this->db->query("select * from detail_dosen where nip='$nip'");
return $cek->result();
}
最后我的控制器命名为dosen
public function cek_nip_dosen()
{
$this->load->model("model_dosen");
$nip = array('nip' => $this->input->post('nip'));
$hasil_cek = $this->model_dosen->cek_nip('$nip');
if (count($hasil_cek)==0)
{
echo 'gada'; //data not exist
}
else
{
echo 'ada';
}
}
当我插入任何数据(数据编号的类型)时,跨度始终显示&#34; NIP bisa digunakan&#34;这意味着即使数据存在于数据库中,我输入的数据也不存在于数据库中。
有人可以帮助我。
提前感谢。
答案 0 :(得分:2)
请勿在{{1}}方法中用单引号将变量名称换行。您需要更改以下行:
cek_nip_dosen()
到
$hasil_cek = $this->model_dosen->cek_nip('$nip');
答案 1 :(得分:0)
更改您的ajax数据选项:
从:
数据:&#39; nip =&#39; + nip
到:
data: {"nip":nip}
并从&#39; $ nip&#39;更改您的模型输入$ nip
答案 2 :(得分:0)
尝试
$ hasil_cek = $ this-&gt; model_dosen-&gt; cek_nip($ nip);