Salut !
Voila mon probleme : il se trouve que je suis en train de creer des tas de formulaires pour mettre a jour ma base de données.
Jusque la, j'ai fait mon travail avec succès, cependant, les controles des formulaires n'interagissent pas assez avec l'utilisateur : je ne fais qu'apparaitre des phrases d'avertissement a coté du formulaire. Voici ma fonction de control en php :
L'ideal serait par exemple de rendre la couleur d'un champ non ou mal saisie rouge pour ainsi attirer l'attention.
J'ai deja trouvé des controle en javascript tres efficace et qui change un bloc de style css, mais le javascript a le désavantage de pouvoir etre désactivé pour raison de sécurité. Le javascript sera donc exclu de mon application dans la mesure du possible.
J'ai trouvé une methode en php qui va directement dans le style css et le modifie :
http://developpeur.journaldunet.com/tutoriel/php/050218-php-css-dynamique.shtml
Mais je ne souhaite pas non plus inserer du code php dans la feuille de style, car je veux separer le php, le css, et le html, ce qui permettra une meilleure comprehension du code.
J'ai aussi trouvé une classe technique en php qui permet de valider le formulaire et de changer la classe des blocs concerné (bloc .erreur, ou bloc .normal), c'est ce qui ressemble le plus a ce que je veux faire :
http://www.asp-php.net/scripts/asp-php/valide-form.php
Mais voila, je ne suis pas aussi bien calé que ça en php, et j'aimerais avoir une version simplifié, ou alors juste un petit tuto qui m'explique ce que je voudrais precisement realiser : la feuille de style dispose de 2 classe, l'une intitulée "erreur", qui affiche du rouge, l'autre "normale" qui affiche normalement. Je ne veux pas modifier la feuille de style en php, mais seulement switcher le nom de classe du bloc en fonction du resultat du controle d'erreur.
Voila voila, merci d'avance pour vos conseils.
Modifié par t.royere (23 Jan 2007 - 10:46)
Voila mon probleme : il se trouve que je suis en train de creer des tas de formulaires pour mettre a jour ma base de données.
Jusque la, j'ai fait mon travail avec succès, cependant, les controles des formulaires n'interagissent pas assez avec l'utilisateur : je ne fais qu'apparaitre des phrases d'avertissement a coté du formulaire. Voici ma fonction de control en php :
<?php
// Fonction de contrôle avant insertion ou mise à jour
function controle_eleve ($eleve)
{
$message = "";
// Test sur l'existence, le type, la présence d'une valeur
if (empty($eleve['nom_eleve']))
{
$message = "<li>champ du nom vide,";
}
else if (is_numeric ($eleve['nom_eleve']))
{
$message = "<li>mauvaise saisie du nom,";
}
else if (ereg ("<[^>]*>", $eleve['nom_eleve'], $balises))
{
$message .= "<li>balise dans le champ nom : " . htmlEntities ($balises[0]) . ",";
}
<?=$test->fielderror("Nom","fieldreq")?>
if (empty($eleve['pren_eleve']))
{
$message .= "<li>champ du prénom vide,";
}
else if (is_numeric ($eleve['pren_eleve']))
{
$message = "<li>mauvaise saisie du prénom,";
}
else if (ereg ("<[^>]*>", $eleve['pren_eleve'], $balises))
{
$message .= "<li>balise dans le champ prénom : " . htmlEntities ($balises[0]) . ",";
}
if (empty($eleve['datenai_eleve']))
{
$message .= "<li>champ de la date de naissance vide,";
}
else if(!eregi("^([0-9]{2})/([0-9]{2})/([0-9]{4})$",$eleve['datenai_eleve']))
{
$message .= "<li>mauvais format de la date,";
}
if (empty($eleve['cp_eleve']))
{
$message .= "<li>champ du code postal vide,";
}
else if (!is_numeric ($eleve['cp_eleve']))
{
$message .= "<li>mauvais format du code postal,";
}
if (empty($eleve['ville_eleve']))
{
$message .= "<li>champ de la ville vide,";
}
else if (is_numeric ($eleve['ville_eleve']))
{
$message = "<li>mauvaise saisie de la ville,";
}
else if (ereg ("<[^>]*>", $eleve['ville_eleve'], $balises))
{
$message .= "<li>balise dans le champ ville : " . htmlEntities ($balises[0]) . ",";
}
if (empty($eleve['tel_eleve']))
{
$message .= "<li>champ du téléphone vide,";
}
else if (!is_numeric ($eleve['tel_eleve']))
{
$message .= "<li>mauvais format du téléphone,";
}
// si il y a un message, on affiche le détails des erreurs et le formulaire
if ($message)
{
echo "<div id='control'>"
. "<b>Les erreurs suivantes sont été rencontrées : </b>"
. "<ul>$message</ul>"
. "</div>";
// Réaffichage du formulaire avec les données saisies
form_eleve (mode_insertion, $eleve);
return false;
}
else
{
return true;
}
}
?>
L'ideal serait par exemple de rendre la couleur d'un champ non ou mal saisie rouge pour ainsi attirer l'attention.
J'ai deja trouvé des controle en javascript tres efficace et qui change un bloc de style css, mais le javascript a le désavantage de pouvoir etre désactivé pour raison de sécurité. Le javascript sera donc exclu de mon application dans la mesure du possible.
J'ai trouvé une methode en php qui va directement dans le style css et le modifie :
http://developpeur.journaldunet.com/tutoriel/php/050218-php-css-dynamique.shtml
Mais je ne souhaite pas non plus inserer du code php dans la feuille de style, car je veux separer le php, le css, et le html, ce qui permettra une meilleure comprehension du code.
J'ai aussi trouvé une classe technique en php qui permet de valider le formulaire et de changer la classe des blocs concerné (bloc .erreur, ou bloc .normal), c'est ce qui ressemble le plus a ce que je veux faire :
http://www.asp-php.net/scripts/asp-php/valide-form.php
Mais voila, je ne suis pas aussi bien calé que ça en php, et j'aimerais avoir une version simplifié, ou alors juste un petit tuto qui m'explique ce que je voudrais precisement realiser : la feuille de style dispose de 2 classe, l'une intitulée "erreur", qui affiche du rouge, l'autre "normale" qui affiche normalement. Je ne veux pas modifier la feuille de style en php, mais seulement switcher le nom de classe du bloc en fonction du resultat du controle d'erreur.
Voila voila, merci d'avance pour vos conseils.
Modifié par t.royere (23 Jan 2007 - 10:46)