Проверка базы данных PHP торт - PullRequest
1 голос
/ 27 февраля 2012

Я пытался выяснить, как проверить, существует ли значение, введенное в текстовое поле, в базе данных или нет, как только оно введено или на событии вкладки, используя cakePHP и javascripts.Я новичок, так что, пожалуйста, кто-нибудь может помочь?Спасибо,

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Создайте проверку для Уникальности на поле.Он проверит значение поля перед сохранением.Если он существует, он сообщит пользователю, что значение уже существует.

0 голосов
/ 23 октября 2013

допущения: таблица: сообщения Модель: Сообщение Контроллер: Сообщения и поле, о котором вам нужно уведомить о существовании, - post_title

Теперь сделайте что-то вроде этого

В поле зрения:

пусть id текстового поля для post_title равен 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;


}
...