MVC przekazanie komunikatu z funkcji w modelu do widoku.

0

Witam,
Po wysłaniu formularza poprzez adres wykonuję funkcję w kontrolerze, która wywołuję funkcje w modelu. Funkcja w modelu wpisuje dane z formularza do bazy danych, następnie chciałbym zwrócić komunikat czy dodawanie zostało wykonane, czy napotkano na błąd. Wymyśliłem, że zrobię to javascriptem, żeby nie przeładowywać strony, więc w funkcji w modelu wpisuje sobie kod javascript do zmiennej i dalej mam problem z przekazaniem tego do widoku. A więc jak przekazywać wyniki działania funkcji w modelu do widoku? Jak obsługiwać formularze w MVC?

0

A co masz? pokaż kod...

0

Pamiętaj, że kod wykonywany jest linia po linii, więc jak masz połączenie z bazą danych to wystarczy zrobić coś na tej zasadzie (nie skupiaj się na składni):

class Model
{
  private $state = true;

  function __construct()
  {
    $db = new Polaczenie();
    if(zostal_zwrocony_blad) $this->state = false;
  }

  public function get_state()
  {
    return $this->state;
  }
}
class Controller
{
  function __construct()
  {
    // tutaj jakiś kod
    $model = new Model();
    if($model->get_state())
    {
      // a tutaj możesz wywołać widok
      new View($model->get_parameters());
    } else {
      throw new Exception('Coś nie tak z połączniem');
    }
  }
}
0

Kurcze przepraszam, że tak namieszałem w tym wątku. Mam coś takiego:
w adresie wpisuje coś ala www.strona/dodawanie/ w skutek tego ładuje mi się kontroler dodawanie:

<?php
class Dodawanie  {
    
    
    
 function __construct() {
        
        Session::init();
 	$this->view = new Main_View();
        if(!Session::get('zalogowany'))
        {
            Session::destroy();
            header('location:../login');
            exit;
        }
        elseif (Session::get('zalogowany')) {
            $this->view->render('dodawanie');
            
            }
        
     }
   public function dodaj(){
         
       
         require 'models/model_dodawanie.php';
         $this->model_dodawanie = new Model_dodawanie();
         $this->model_dodawanie->dodaj();
        
         
         
          Echo'dodawanie...';
     }
     
     
}


?>

Czyli jak zalogowany to ładuje się strona z formularzem do dodawania :

<br /><hr />


<form method="post" action="dodawanie/dodaj">
    <textarea rows="25" cols="150" name="tresc"></textarea>
    <br />
    <input type="submit" value='ok'/>
</form>

Po naciśnięciu submit jest przejście na coś ala www.strona/dodawanie/dodaj co uruchamia funkcję dodaj w kontrolerze dodawanie. Tą funkcją bez problemu odbieram dane z modelu, ale nie potrafię tego przesłać/odebrać w widoku. Chcę tylko wyświetlić jakąś informację, że dodano coś. Tak super genialnie to by było gdybym wyświetlił komunikat bez przeładowywania strony np alert javascriptu. Ale nie wiem czy to w ogóle jest możliwe.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.