如何使用PHP CodeIgniter,JQuery,AJAX检查数据库中是否存在ID验证

时间:2015-12-09 02:11:27

标签: javascript php jquery codeigniter

我正在尝试使用ajax和codeigniter检查id的有效性。当id的状态如果被采用将出现" NPP tidak ada di database"。

我的控制者:

 public function ajax_add()
    {
        $this->_validate();
         $data = array(
        'id' => $this->input->post('id'),
        'username' => $this->input->post('username'),
        'password' => $this->input->post('password'),
        'level' => $this->input->post('level'),
    );
        $insert = $this->user_model->save($data);
        echo json_encode(array("status" => TRUE));
    }

   private function _validate()
   {
$data = array();
$data['error_string'] = array();
$data['inputerror'] = array();
$data['status'] = TRUE;
$id  = $this->input->post('id');
$result     = $this->user->checknpp( $id );  #send the post variable to  the model
//value got from the get metho
$id= $id;

 if( $result == '0' )
 {
    $data['inputerror'][] = 'id';
    $data['error_string'][] = 'NPP tidak ada di database';
    $data['status'] = FALSE;
  }    
 if($data['status'] === FALSE)
  {
    echo json_encode($data);
    exit();
}
}

我的模态:

public function checknpp($id)
{  
   $this->db->select('id');
   $this->db->where('id', $id);
   $this->db->from('id', 1);
   $query = $this->db->get();

   if( $query->num_rows() > 0 ){     return 0;    }
   else{    return 1;   }               
} 

我的js:

function save()
 {
  $('#btnSave').text('saving...'); //change button text
  $('#btnSave').attr('disabled',true); //set button disable 
  var url;

if(save_method == 'add') {
    url = "<?php echo site_url('user/ajax_add')?>";
} else {
    url = "<?php echo site_url('user/ajax_update')?>";
}

// ajax adding data to database
$.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {

        if(data.status) //if success close modal and reload ajax table
        {
            $('#modal_form').modal('hide');
            reload_table();
        }
        else
        {
            for (var i = 0; i < data.inputerror.length; i++) 
            {
                  $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
                  $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
            }
        }
        $('#btnSave').text('save'); //change button text
        $('#btnSave').attr('disabled',false); //set button enable 


    },
    error: function (jqXHR, textStatus, errorThrown)
    {
        alert('Error adding / update data');
        $('#btnSave').text('save'); //change button text
        $('#btnSave').attr('disabled',false); //set button enable 

    }
  });
}

我的观点:

<input name="id" id="masukpun" placeholder="NPP" class="form-control" type="text" />

但是,当我运行它时,它总是说错误更新/添加数据。

1 个答案:

答案 0 :(得分:0)

试试这个,

public function ajax_add() {
    $data = array();
    $data['error_string'] = array();
    $data['inputerror'] = array();
    $data['status'] = TRUE;
    $id = $this->input->post('id');
    $result = $this->user->checknpp($id);  #send the post variable to  the model
    //value got from the get metho
    $id = $id;

    if ($result == '0') {
        $data['inputerror'][] = 'id';
        $data['error_string'][] = 'NPP tidak ada di database';
        $data['status'] = FALSE;
    } else {
        $data = array(
            'id' => $this->input->post('id'),
            'username' => $this->input->post('username'),
            'password' => $this->input->post('password'),
            'level' => $this->input->post('level'),
        );
        $insert = $this->user_model->save($data);
        $data = array("status" => TRUE);
    }
    echo json_encode($data);
}