Cake PHP数据库检查

时间:2012-02-27 03:31:48

标签: javascript cakephp cakephp-1.3

我试图弄清楚如何检查文本框中输入的值是否存在 输入数据库或不输入数据,或者使用cakePHP和javascripts输入tab事件。我是新来的,请有人帮忙吗? 谢谢,

2 个答案:

答案 0 :(得分:1)

在字段上为Unique创建验证。它会在保存之前检查字段的值。如果存在,它将告诉用户该值已存在。

答案 1 :(得分:0)

假设: 表:帖子 型号:帖子 控制器:帖子 你需要通知预先存在的领域是 post_title

现在做这样的事情

在视图中:

让post_title的文本字段的id是PostPostTitle

$('#PostPostTitle').bind({
    blur:function(){
        var newTitle = $(this).val();
        if(newTitle){
            $.ajax({
               url:'Posts/checkTitle/',
               type:'POST',
               data:{title:newValue},
               dataType:'JSON',
               success:function(data){
                    if(data.ok==1){
                       //dont show any error and let the user submit
                    }else {
                       //show error notification in desired format
                    }
               }
            })
        }
    }
});

现在,在您的控制器中,使用名称checkTitle

进行操作

控制器代码将是这样的

public function checkTitle(){
   //fetch the vlaue of title from appropriate key of the controller class
   //variable $this->params (in cake v<2) or from $this->reuest (cake v2.x+)
   $this->layout = 'ajax';//or json or null what ever you prefer
   $this->autoRender = false;
   //assumig that you have fetched value of newTitle in $newTitle from requestVar
   //make a database query to post table
   $response = array('ok'=>0);
   $data = $this->Post->find('count',array('conditions'=>array('post_title'=>$newTitle)));
   if($data==0) {
      $response['ok']=1;
   }
   echo json_encode($response);
   exit;


}