Bonjour à tous,

J'aimerais recevoir de l'aide malgré qu'il n'y est aucun rapport avec les tutoriels présent ici.

Je suis à la tête d'un projet pour réaliser des sites web pour des particuliers & professionnels, j'ai donc réalisé un framework MVC avec moteur de templates, etc.

Seul petit problème, je ne me comprend plus, j'ai plutôt l'habitude de réaliser des sites dites "simples".

J'ai un contrôleur appelé "accueil.php" et un template appelé accueil.tpl. L'affichage se trouve dans le template & j'appelle ce template avec mon contrôleur, alors ma question est :

Si j'ai un formulaire dans mon fichier template, ou dois-je traiter les données ? =/

5 réponses


mespeche
Réponse acceptée

Pour créer un système MVC il faut que tu comprennes bien le principe des "3 couches".
En fait, il faut que ton controller interagisse avec ta vue et ton model. Donc il faut que ton controller envoi les données a ton model, ton model execute la requete et retourne les résultats à ton controller qui lui, affiche ta vue en lui faisant passer les données du model.

Du coup, ton formulaire se trouvant dans ton accueil.tpl, va envoyer les données à ton controller accueil.php dans une méthode du genre : traiterFormulaire(); et dans cette méthode il faut que tu lance une méthode du model que tu veux. Ton model doit donc retourner un tableau de données pour que tu puisse les stocker. Comme ceci un peu :

Tu soumet ton formulaire qui envoi les données à la méthode ajouter();
Dans ton controller tu as :

function ajouter(){
    // La tu fais l’interaction avec ton modèle :
    $traitement = $this->tonModel->add(tesDonnees);
    if($traitement != false)
        $this->gererVue('maVariable', 'Ajout avec succes');
}

Et dans ton model :

function add($donnees){
    $sql = "INSERT INTO ...";
    if(mysql_query($sql)){
        return true;
    else
        return false;
    }
}

Dans ta vue :

<php echo $maVariable; ?>

C'est un petit exemple du fonctionnement, si tu as compris tu devrais t'en sortir ;)

Effectivement j'ai compris merci :D

Le mieux cest que tu commente ^^

Valide la question si ma réponse te convient ;) Merci

Y aurait-il un moyen de m'entretenir avec toi s'il te plait ? Parce que encore une fois je suis coincé, je ne sais pas comment j'ai fait pour en arriver à la mais ça ne fait rien.. =/