Bonjour,
Je viens d'apprendre les base des templates. J'utilise l'approche PHP natif.
J'avais d'abord créé des formulaires en me référant au
tutoqu'on m'avait conseillé sur ce forum.
En fait, mon formualire est fait sur une seule page et renvoie les valeurs déjà entrée si le formulaire n'a pas été correctemment complété.
J'ai pu l'adapter à mon code.
Maintenant, j'ai créé un template qui affiche les données d'un requête.
Ca aussi ça fonctionne.
Dans ce template j'aimerai donc mettre un formulaire qui fonctionne de la même manière que celle du tuto.
Mais celui-ci utilise
<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>">
afin de pouvoir ré-afficher le formulaire.
Si j'utilise un template, je suppose que je perds tout les avantge du template si j'utilise la même méthode que celle du tuto.
Voic le code
data.php qui appelle mon template et qui lui envoie les valeurs de la requête:
<?php
include_once '../Connection.php';
$resultats=$connexion->query("SELECT TYP_LABEL FROM TYPE_PRODUIT order by TYP_LABEL");
$resultats->setFetchMode(PDO::FETCH_OBJ);//on dit que le resultat soit récupérable sous forme d'objet
while($ligne=$resultats->fetch()){//on récupère le liste des types
$tab[]=$ligne->TYP_LABEL.'<br />';//on affiche les types
}
$resultats->closeCursor();//on ferme le curseur des résultats
include('template.php');
?>
Et voic le code de mon
template.php :
<body>
<?php //include('menu.inc.php');
?>
<div class="BoitePrincipale">
<div class="BoiteListeTypes">
<h1>Types de produits existants: </h1>
<?php foreach($tab as $val){
echo $val ?>
<br />
<?php }?>
</div>
<div class="BoiteAjouterTypes">
<h1>Ajouter un type : </h1>
<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>">
<input name="type" type="text" class="majuscules_auto" value="" maxlength="40">
<input type="submit" name="envoi" value="Envoyer">
</form>
</div>
</div>
</body>
Je bloque au niveau du formulaire dans
template.php.
Ou le renvoyer? Vers une 3ème page php? Si je fais ça, je perds les anciennes valeurs entrées si le formualire n'est pas rempli correctement?
Mon ancien code par rapport au tuto est:
/**
* On commence par vérifier si le bouton soumettant le formulaire a été
* cliqué, "envoi" étant l'attribut "name" du bouton "submit"
* Sinon, on saute à la ligne 255 de ce code.
*/
if(isset($_POST['envoi']))
{ /** blabla....... */
<p>Ajouter un nouveau type<br />
</p>
<form method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>">
<label>Type : </label>
<input type="text" name="type" maxlength="40" value="<?php echo $type ?>" /><br />
<input type="submit" name="envoi" value="Envoyer" />
</form>
/** Si le formualire est complètement rempli alors */
echo "INSERT INTO TYPE_PRODUIT (TYP_LABEL) VALUES ('$type');";
Merci de votre aide.