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