Validation, Search & Pagination

Вопросы об установке, настройке и работе самого фреймворка

Validation, Search & Pagination

Сообщение Guerra 12 мар 2010, 17:23

Всем привет! Помогите решить проблему. При добавлении валидации к форме поиска на сайте - перестает корректно работать листалка результатов поиска :?
Если убрать валидацию - листалка работает корректно :idea:
В чем может быть проблемма? :|
Код: Выделить всё

function search
(){
   $fields['term'] = 'пошук';
   $this->validation->set_fields($fields);
   $rules['term'] = 'trim|required|min_length[4]|max_length[20]|xss_clean';
   $this->validation->set_rules($rules);
   if ($this->validation->run() == TRUE){
      if($this->input->post('term')){
         $this->session->set_userdata('keyword', $this->input->post('term'));
      }   
      $per_page 
= 2;
      $data['results'] = $this->search->searcht((int)$this->uri->segment(3),$per_page,$this->session->userdata('keyword'));                        
      $config
['base_url'] = base_url().'blog/search';
      $config['total_rows'] = $this->search->searchc($this->session->userdata('keyword'));;
      $config['per_page'] = $per_page;            
      $this
->pagination->initialize($config);            
      $data
['pag_links'] = $this->pagination->create_links();            
      
      $data
['main'] = 'search';
      $this->load->view('template',$data);                
   
}else{
      $this->session->set_userdata('err',$this->validation->error_string);
      
      $data
['main'] = 'emptysearch';
      $this->load->view('template',$data);
   }
}
 
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36

Re: Validation, Search & Pagination

Сообщение michail1982 12 мар 2010, 18:35

переход на 2ю страницу происходит методом GET ? тогда валидация всегда будет возвращать FALSE
Аватара пользователя
michail1982
 
Сообщения: 229
Зарегистрирован: 25 ноя 2008, 15:36

Re: Validation, Search & Pagination

Сообщение Guerra 12 мар 2010, 19:15

Валидация работает коректно. Но при включенной валидации некорректно работает листалка, выводится только первая страница результатов :shock:
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36

Re: Validation, Search & Pagination

Сообщение Guerra 14 мар 2010, 05:03

Подскажите люди знающие в чем может быть проблема :?:
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36

Re: Validation, Search & Pagination

Сообщение snake.nf 14 мар 2010, 06:41

Guerra писал(а):Подскажите люди знающие в чем может быть проблема :?:

Уже ответили. Смотреть надо здесь:

Код: Выделить всё

 
if($this->input->post('term')){
         
$this->session->set_userdata('keyword'$this->input->post('term'));
      } 
 

Методом POST данные передаются только для первой страницы. На других страницах $this->input->post('term') будет возвращать false.
snake.nf
 
Сообщения: 32
Зарегистрирован: 16 фев 2010, 11:36

Re: Validation, Search & Pagination

Сообщение Guerra 14 мар 2010, 14:26

Методом POST данные передаются только для первой страницы. На других страницах $this->input->post('term') будет возвращать false.

Данные из post загоняются в сессию, и с выключенной валидацией листалка работает корректно ;)
Меня интересует, почему кода включаешь валидацию то листалка перестает работать корректно :?:
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36

Re: Validation, Search & Pagination

Сообщение michail1982 14 мар 2010, 15:29

при переходе на 2ю страницу данные передаються через $_GET, значит валидация выдаст FALSE и до листалки (на 2й странице) даже не доходит
вам надо чтото типа такого... (код не проверял, писал на коленке)
Код: Выделить всё
function search()
{
    if(
$_SERVER['REQUEST_METHOD']=='POST')
    {
        
$fields['term'] = 'пошук';
        
$this->validation->set_fields($fields);
        
$rules['term'] = 'trim|required|min_length[4]|max_length[20]|xss_clean';
        
$this->validation->set_rules($rules);
        if (
$this->validation->run() == TRUE){
            if(
$this->input->post('term')){
                
$this->session->set_userdata('keyword'$this->input->post('term'));
            }
        }
        else
        {
            
$this->session->set_userdata('err',$this->validation->error_string);
        }
    }
    if(
$this->session->userdata('keyword'))
    {
        
$per_page 2;
        
$data['results'] = $this->search->searcht((int)$this->uri->segment(3),$per_page,$this->session->userdata('keyword'));                        
        
$config['base_url'] = base_url().'blog/search';
        
$config['total_rows'] = $this->search->searchc($this->session->userdata('keyword'));;
        
$config['per_page'] = $per_page;            
        
$this->pagination->initialize($config);            
        
$data['pag_links'] = $this->pagination->create_links();            
        
$data['main'] = 'search';
        
$this->load->view('template',$data);
    }
    else
    {
    
$this->session->set_userdata('err',$this->validation->error_string);
    
$data['main'] = 'emptysearch';
    
$this->load->view('template',$data);
    }
Последний раз редактировалось michail1982 14 мар 2010, 15:38, всего редактировалось 1 раз.
Аватара пользователя
michail1982
 
Сообщения: 229
Зарегистрирован: 25 ноя 2008, 15:36

Re: Validation, Search & Pagination

Сообщение Guerra 14 мар 2010, 15:35

И какой есть выход, кроме написания своей валидации? Ведь если будем передавать данные из формы поиска get-ом то валидацию не сможем использовать :?
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36

Re: Validation, Search & Pagination

Сообщение Guerra 14 мар 2010, 15:52

To michail1982 - высшие предложенный вами вариант не работает - не выводятся ошибки валидации, и листалка только для первой страницы :|
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36

Re: Validation, Search & Pagination

Сообщение Tovit 14 мар 2010, 15:53

Вы можете расширить возможность валидатора, научив его понимать get-данные.
Фантазия! Фантазия! Она поможет... не форум!
Иногда, изобретать велосипеды -- это интересно, тем более, если большинство чужих велосипедов засекречены.
Аватара пользователя
Tovit
 
Сообщения: 413
Зарегистрирован: 15 фев 2009, 17:18

Re: Validation, Search & Pagination

Сообщение Guerra 14 мар 2010, 16:02

Tovit писал(а):Вы можете расширить возможность валидатора, научив его понимать get-данные.

Мне нужно, чтобы данные передавались post :oops:
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36

Re: Validation, Search & Pagination

Сообщение Guerra 14 мар 2010, 20:47

michail1982 спасибо за хорошую идею с $_SERVER['REQUEST_METHOD']=='POST'; переделал проверку все работает :D
Аватара пользователя
Guerra
 
Сообщения: 61
Зарегистрирован: 18 фев 2009, 20:36


Вернуться в Общие вопросы по фреймворку

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron