Fonction PHP par un bouton de formulaire

Résolu/Fermé
moaaa - 27 janv. 2009 à 16:46
 moaaa - 27 janv. 2009 à 17:20
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...
A voir également:

3 réponses

MysticSquall Messages postés 401 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 7 octobre 2011 27
27 janv. 2009 à 16:54
Un formulaire html dans une fonction php ?

c'est pas très propre tout sa
0
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...
0
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...
0