RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | webmastering
PHP - garder un objet en mémoire
corto, le jeu. 30 août 2007 à 00:41:50
Bonjour tout le monde

Une petite question, mais qui est en train de m'empoisonner d'autant qu'il me semble que la solution doit être toute bête …

Je voudrais tout simplement qu'une instance de classe reste en mémoire lorsqu'on passe d'un formulaire à un autre.

Mettre tout le code sur lequel je travaille serait fastidieux, voici donc une modélisation :

<html><title>question.php</title><head></head><body><?php

$UC = new UneClasse() ;

if($_POST['Etape']=='')
{
echo "Point de départ<br>" ;
echo "<form action='#' method=post>" ;
echo "<select name='choix'>" ;
echo "<option value='choix 1'>Choix 1</option>" ;
echo "<option value='choix 1'>Choix 1</option>" ;
echo "</select>" ;
echo "<input type=hidden name='Etape' value='Première'>" ;
echo "<input type=submit>" ;
echo "</form>" ;
}

if($_POST['Etape']=='Première')
{
echo $_POST['Etape'] . " étape" ;
$UC->UneVariable=$_POST['choix'] ;
echo "<form action='#' method=post>" ;
echo "<input type=hidden name='Etape' value='Seconde'>" ;
echo "<input type=submit>" ;
echo "</form>" ;
}

if($_POST['Etape']=='Seconde')
{
echo $_POST['Etape'] . " étape<br>" ;
echo "La propriété de la classe est " . $UC->UneVariable . "<br>";
}

class UneClasse
{
public $UneVariable ;

function UneClasse()
{
echo "Une classe a été créé<br>" ;
}
}
?></body></html>


Lors du premier formulaire, on fait un choix dans la liste déroulante. Lors du deuxième formulaire, on récupère le choix sélectionné et on le stocke dans la propriété de l'objet. Mais, quand on arrive au troisième formulaire, l'objet a été réinitialisé et sa propriété est perdue !

Il doit quand même avoir moyen de garder cette valeur, non ?

Alors évidemment, si le problème était aussi simple, je mettrais cette valeur dans une balise hidden et puis voilà. Ce qui se passe, c'est que dans le vrai script, les choix successifs déterminent l'affichage des prochains formulaires et qu'il faut une flopée de balises hidden pour les gérer, d'autant que c'est tout plein de conditionnels. Ce serait tellement plus simple dans une classe !! (et, j'ose à peine le dire, tellement plus class …)

Si vous avez une solution …

Merci ! Configuration: Windows XP
Opera 9.23


Serge_La
août 07
Suivant
REPONSES
Serge_La
août 07
Citoyen
août 07
Serge_La
août 07
Citoyen
août 07
corto
août 07
Version Web
Réalisé par RedShift
no save