Fonction PHP par un bouton de formulaire [Résolu/Fermé]

Signaler
-
 moaaa -
Bonjour à tous,
Je sais que c'est une question récurrente que j'ai déjà vu à beaucoup d'endroits mais aucune solution proposée n'a fonctionné pour moi...
Voici la problématique:
J'ai une classe "Employe.php" qui contient une fonction d'ajout avec un formulaire. Cette fonction est appelée dans une autre page "Ajout.php" où nous passons les données du formulaire avant de les insérer dans une base de données.
L'insertion fonctionne mais lorsque je fais les contrôles de saisies (tous les champs sont-ils remplis?), si ce n'est pas le cas, je reprends les données entrées en faisant passer la valeur en variable de session afin de préremplir le champ.
Les variables sont bien remplies mais j'aimerais faire un bouton de type "reset" pour enlever les données. Or le bouton reset ne veut pas effacer les variables de session. J'ai donc pensé faire une fonction qui réinitialise les données mais je n'y arrive pas...
P.S. Je débute en PHP/PHP5 donc je vous demanderais un peu de clémence ;-)
Voici le code (désolé si c'est long):
[Employe.php]
<?php
session_start();
class Employe{
public function resetValues(){
$_SESSION['numAvs']="";
$_SESSION['nom']="";
$_SESSION['prenom']="";
$_SESSION['telephone']="";
}

public function ajouter(){
echo '<form method="POST" action="Ajout.php">';
echo '<caption><h2> Données pour les employés </h2></caption>';
echo '<table border =0><tr bgcolor=#ccccc>';
echo '<td width=150>Champ</td>';
echo '<td width=15>Valeur</td></tr>';
echo '<tr><td>N° personnel: <sup> (*)</sup></td><td align="center"><input type = "text" name="numAvs" size="25" maxlength="13"';
if (isset($_SESSION['numAvs'])) // Si on a le numéro d'AVS entré
{
echo 'value="' . $_SESSION['numAvs'] . '"'; // On pré-remplit le champ
}
echo '/></td><td>(13 caractères max)</td></tr>';
echo '<tr><td>Nom: <sup> (*)</sup></td><td align="center"><input type = "text" name="nom" size="25" maxlength="25"';
if (isset($_SESSION['nom'])) // Si on a le nom entré
{
echo 'value="' . $_SESSION['nom'] . '"'; // On pré-remplit le champ
}
echo '/></td></tr>';
echo '<tr><td>Prenom: </td><td align="center"><input type = "text" name="prenom" size="25" maxlength="25"/></td></tr>';
echo '<tr><td>Téléphone: </td><td align="center"><input type = "text" name="telephone" size="25" maxlength="25"/></td></tr>';
echo '<tr><td>Droits: </td><td><select name="droit" size="1">
<option>Administrateur
<option>Utilisateur</td></tr>';
echo '<tr><td colspan="2" align="left"><input type="submit" value="Envoyer">';
//echo '<input type=button value="Remise à zéro" onclick="commande.value = "resetValues"; resetValues()">';
echo '<input type="submit" name="resetValues" value="Remise à zéro" onclick="resetValues()" />';
//<INPUT type="reset" name="reset" value="Remise à zéro"></td></tr>';
echo '<tr><td><sup> (*)</sup>: champs obligatoires</td></tr>';
echo '</form>';
}
}
?>

Comment récupérer cette valeur ou comment faire pour faire le "reset" depuis ma page "Ajout.php"?

Merci pour votre aide...

3 réponses

Messages postés
401
Date d'inscription
lundi 4 juillet 2005
Statut
Membre
Dernière intervention
7 octobre 2011
27
Un formulaire html dans une fonction php ?

c'est pas très propre tout sa
effectivement, mais là n'est pas le problème je crois...
je peux bien créer le formulaire (avec toutefois les fonctions PHP pour le isset) à part et faire un include() mais cela résoudrait-il le problème???
mais merci dans tous les cas pour la rapidité de la réponse...
AAAAAARRRRRRRRGGGGGGGHHH!!!!
je crois que c'est la fatigue qui me guette!!!!
j'envoie le formulaire par POST tandis que je faisais la récupération par $_GET['maVariable']!!!
un bon moment de perdu pour rien mais voici toutefois la solution à ajouter sur l'autre page:

if (isset($_POST['resetValues'])){
// Réinitialisation des valeurs
$_SESSION['numAvs']= "";
$_SESSION['nom']= "";
$_SESSION['prenom']= "";
$_SESSION['telephone']= "";
// Affichage du formulaire pour une nouvelle saisie
$employe->ajouter();
}

Merci dans tous les cas à ceux qui se sont penchés sur mon cas...