Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mvc i formularz
qbas-s
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 28.06.2009

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


Witam,
dla większości to pewnie będzie banał ale ja dopiero zaczynam z tym przygodę.
Chcę zbudować formularz kontaktowy w oparciu o wzorzec MVC.
Nie wiem tylko gdzie mają być przekazywane dane z formularza: do kontrolera czy do modelu.
Czy przekierowanie danych bezpośrednio z formularza na klasę poprzez znacznik <form> jest poprawne?
Pierwsze co mi przyszło na myśl to zbudowanie pliku(ale nie opartego na klasie) który by przejmował dane z tablicy $_POST a następnie dopiero przekazywał je do odpowiedniej klasy aby dokonać walidacji itp.
Wiem, że pewnie mi ktoś poleci jakiś framework ale ja chcę poznać zasadę działania od podszewki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
qbas-s
post
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 28.06.2009

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




Czy teraz formularz nadal zawiera błędy?



Index.php - kontroler


  1. <?php
  2. function __autoload($class){
  3. require $class.'.php';
  4. }
  5.  
  6. class index{
  7. private $model; //
  8. private $view;
  9. private $val;
  10.  
  11. private $name;
  12. private $form;
  13. private $msg;
  14.  
  15. function __construct(){
  16. $this->startModel();
  17. $this->setData();
  18. $this->getData();
  19. $this->val();
  20. $this->getData();
  21. $this->startView();
  22. }
  23. private function startModel(){
  24. $this->model = new form();
  25. }
  26. private function setData(){
  27.  
  28. if(isset($_POST['send'])){
  29.  
  30. $this->model->name = $_POST['name'];
  31.  
  32. }
  33. }
  34. private function getData(){
  35. $this->name = $this->model->name;
  36. $this->form = $this->model->st_form;
  37. $this->msg = $this->val->msg;
  38. }
  39. private function val(){
  40. if(isset($_POST['send'])){
  41. $this->val = new val($this->name);
  42.  
  43. }
  44. }
  45. private function startView(){
  46. $this->widok = new view($this->form,$this->msg);
  47.  
  48. }
  49. }
  50. new index();
  51. ?>



form.php - model
  1. <?php
  2. class form
  3. {
  4. public $st_form;
  5. public $name;
  6.  
  7. public function __construct()
  8. {
  9. $this->showForm();
  10. }
  11. //przpisywanie formularza do zmiennej
  12. public function showForm()
  13. {
  14. $this->st_form = "<form action=\"index.php\" method=\"post\" >
  15. <input type=\"hidden\" name=\"send\" >
  16. <input type\"text\" name=\"name\" >
  17. <input type=\"submit\" value=\"send\" >
  18. </form>";
  19. }
  20.  
  21. }
  22.  
  23. ?>



view.php - widok
  1. <?php
  2. class view{
  3. private $form;
  4. private $msg;
  5.  
  6. function __construct($form,$msg){
  7. $this->form = $form;
  8. $this->msg = $msg;
  9. $this->render();
  10. }
  11. private function render(){
  12. echo $this->msg."<br/>";
  13. echo $this->form."<br/>";
  14. }
  15. }
  16. ?>




val.php - klasa odpowiedzialna za walidację

  1. <?php
  2.  
  3. class val{
  4. private $name;
  5. public $msg;
  6.  
  7. public function __construct($name){
  8. $this->name = $name;
  9. $this->check();
  10. }
  11. public function check(){
  12. if(strlen(trim($this->name))>0){
  13. $this->msg = "pole nie jest puste";
  14. } else{
  15. $this->msg = "pole jest puste";
  16. }
  17. }
  18. }
  19. ?>


Ten post edytował qbas-s 9.02.2011, 23:35:24
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: 30.12.2025 - 03:46