MVC przekazanie komunikatu z funkcji w modelu do widoku.

Odpowiedz Nowy wątek
2013-09-12 09:05
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?

Pozostało 580 znaków

2013-09-12 12:21
0

A co masz? pokaż kod...

Pozostało 580 znaków

2013-09-12 12:51
Zi00mal
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');
    }
  }
}

Pozostało 580 znaków

2013-09-16 20:35
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.

edytowany 1x, ostatnio: Marcin_ZG, 2013-09-16 20:36

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0