首先,这篇文章不是关于表单验证(javascript),而是关于数据库约束的验证。
当我通过add表单添加数据时,在某些情况下,由于我在创建数据库时初始化的数据库约束(例如复制主键),数据库将不会更新。在这种情况下,杂货杂货添加表单将不会显示任何错误。但是一直显示ajax加载器图像。
当我通过编辑表单编辑数据时,有些情况下,由于我在创建数据库时初始化的数据库约束(例如更新约束上的外键),数据库将不会更新。在这种情况下,杂货杂货添加表单将不会显示任何错误。但是一直显示ajax加载器图像。
当我尝试从杂货crud表中删除记录时,有些情况下,由于我在创建数据库时初始化的数据库约束(例如删除约束上的外键),数据库将不允许删除该记录。在这种情况下,杂货杂货不会显示任何错误,也不会做任何事情。
在上述情况下,我们如何显示错误?杂货杂货中有内置的功能吗?否则我们怎么实现呢?(但是当成功插入/编辑/删除一条记录时,杂货库将显示成功的消息)
这很重要,否则用户会认为数据库没有更新是由于我们的编码错误
可以在删除前使用回调。
$crud->callback_before_delete(array($this,'cek_before_delete'));
$crud->set_lang_string('delete_error_message', 'This data cannot be deleted, because there are still a constrain data, please delete that constrain data first.');
function cek_before_delete($primary_key) {
$this->db->db_debug = false;
$this->db->trans_begin();
$this->db->where('id', $primary_key);
$this->db->delete('table_name');
$num_rows = $this->db->affected_rows();
$this->db->trans_rollback();
if ($num_rows > 0) {
return TRUE;
} else {
return FALSE;
}
}
那么你也可以使用$crud->callback_before_update对编辑前的回调做同样的操作。