Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CodeIgniter]form_validate->callback
acidm
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 3
Dołączył: 12.03.2011
Skąd: Opole

Ostrzeżenie: (0%)
-----


Jak ustwawić regułe w form_validation żeby w własnej funckji walidacji mieć dostęp do danych z dwóch pól jednocześnie?

  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. class Login extends CI_Controller
  3. {
  4.  
  5.  
  6.  
  7.  
  8. public function index()
  9. {
  10.  
  11.  
  12.  
  13. $this->load->library('form_validation');
  14.  
  15.  
  16. $this->form_validation->set_rules('login', 'użytkownik', 'required|min_length[6]|max_length[20]|alpha_dash|callback_checkuser');
  17. $this->form_validation->set_rules('pass', 'hasło','required|min_length[6]|max_length[20]|alpha_dash');
  18.  
  19.  
  20.  
  21. if ($this->form_validation->run() == FALSE)
  22. {
  23. $this->load->view('login_form');
  24. }
  25. else
  26. {
  27. //tu wlaściwe operacje
  28.  
  29. }
  30.  
  31.  
  32. }
  33.  
  34.  
  35. public function checkuser($str)
  36. {
  37. //tu potrzebuje dostepu do pola login i pass jednocześnie żeby sprawdzić je w bazie
  38. }
  39.  
  40.  
  41.  
  42. }
  43. ?>


Jak dodam do drugiej reguły 'callback_checkuser' to 'checkuser' wywoływane jest dwa razy po jenym parametrze,ja potrzebuje jednego wywołania z dwoma parametrami.

edit Mogłbym ładować w metodzie 'checkuser' dane drugiego pola bezpośrednio z input ale wydaje mi się to jakoś mało eleganckie.

Ten post edytował acidm 11.03.2013, 16:09:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
acidm
post
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 3
Dołączył: 12.03.2011
Skąd: Opole

Ostrzeżenie: (0%)
-----


Ale ja je potrzebuje jednocześnie, w jednej metodzie .Na razie robię to tak ze mój callback dopisuje do drugiej reguły więc metoda ta jest wywoływana gdy warunki pierwszej reguły są spełnione ,spełnione są warunki drugiej reguły(te przed callback).W samej metodzie callbackowej jeden parametr mam , drugi pobieram poprzez $this->input->post() , choć wygląda to trochę nieelegancko.
W zasadzie operację sprawdzania użytkownika i hasła w bazie mógłbym zrobić później ale jak przekazać wiadomość błędu do formularza skoro '$this->form_validation->set_message()' przypożądkowana jest do reguły.

Cytat(markonix @ 11.03.2013, 19:04:50 ) *
Własne callback mogą przyjmować argumenty przez nawias kwadratowy [] i można bym tam na upartego wsadzić drugą, pożądaną wartość.


Możesz zademonstrować jakoś?
Edit Już nie trzeba obczaiłem o co chodzi:)

Ten post edytował acidm 11.03.2013, 21:53:35
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 20:47