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?
A co masz? pokaż kod...
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');
}
}
}
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.