Problème en mvc

Petit nouveau ! | 3 Messages

16 oct. 2010, 21:23

Bonjour,

J'ai un petit problème de déclartion de variable avec mon contrôleur. En effet lorque la condition if est fausse tout fonctionne, mais lorque la condition est remplie, les variables ne sont pas définies.

J'ai effectué un include du premier formulaire (ou se trouve les inputs) à la page ou seront écrite les valeurs encodées, un second include de la page ou les valeurs sont encodées à mon modèle.

Quelqu'un saurait t'il m'aider pour déclarer correctement les variables dans le controleur?

Merci d'avance.

Ci joints les codes:
modèle:
<?php
include('controleur.php');

class reservation
{
	private $destination;
    private $place;
	private $assurance;

function __construct($destination,$place,$assurance)
{	
		$this->destination = $destination;
		$this->place = $place;
		$this->assurance = $assurance;
}	
	
function set_destination($destination)
{	
	
			
		$this->destination=$destination;
}				 
	
function set_donnee2($place)
{	
				
		$this->place=$place;
							
}	
function set_assurance($assurance)
{
		$this->assurance=$assurance;
}
function get_destination()
{
	return $this->destination;
}
function get_donnee2()
{
	
	return $this->place;	
}	


}

?>
contrôleur:
<?php

new reservation ('','','');


	if (isset($_POST['destination']) && (!is_numeric($_POST['destination'])) &&(!empty($_POST['destination']))) 
		{

	

		 echo"<b>Destination : </b>".$destination';
		}							
				else  echo"<b>Destination :</b> Introduisez une destination !  ";
	
	if (isset($_POST['place']) && (is_numeric($_POST['place'])) &&(!empty($_POST['place'])))/*Vérifie si variable existe, si est un nombre et différent de vide*/
				{
				
				 echo  "<b><br>Nombre de place : </b>".$place;
				}			
			else echo "<b><br>Nombre de place : </b> Introduisez un nombre de place !";

	if (isset($_POST['assurance'])==true)
			{
			echo "<br><b>Assurance :</b> oui";
			}
			else echo "<br><b>Assurance :</b> non";
?>

ViPHP
xTG
ViPHP | 7331 Messages

16 oct. 2010, 22:03

De quel if parles-tu ?
Car je ne vois aucun lien entre ta classe réservation et ton traitement de formulaire.
Ainsi qu'aucun lien visible avec le contrôleur inclu.

Bref on ne risque pas d'inventer. :p

Petit nouveau ! | 3 Messages

16 oct. 2010, 22:08

Le if se trouve dans le code du contrôleur. Pour le lien, j'ai fait un include dans le formulaire vers le contrôleur.

Merci d'avance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 oct. 2010, 22:27

Je suis pas sur de bien avoir compris ce que tu voulais faire, mais s'il s'agit juste de renseigner les attributs de ton instance, il te faut :
- stocker l'instance de ta réservation dans une variable
- faire appel aux setters que tu as défini (ou passer tes valeurs en arguments de ton constructeur)
...
$maReservation = new reservation('', '', '');
...
$maReservation->set_destination($_POST['destination']);
...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

17 oct. 2010, 09:35

Merci,

Ca fonctionne correctement, il n'y a pas de message d'erreur, mais les valeurs encodées dans le formulaire ne s'affiche pas.

Savez vous pourquoi? Faut t'il déclarer la variable get_post['destination'] dans le modèle?


Bien à vous.

ViPHP
AB
ViPHP | 5818 Messages

17 oct. 2010, 15:34

Bah c'est pas le mvc qui te pose problème mais la POO. xTG puis Ryle t'ont donnés les premiers éléments de réponse. Tu peux suivre ce tuto pour aller plus loin.