8796 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je rencontre un petit problème pour afficher convenablement une valeur dans un récapitulatif de formulaire.

En gros, j'inscris dans ma base de données un horaire que je souhaite ensuite afficher à l'utilisateur pour qu'il puisse en vérifier l'exactitude.

1°) L'utilisateur choisit un horaire de réservation à l'aide de deux listes déroulantes, l'une pour les heures (de 19 à 22) et l'autre pour les minutes (00, 15, 30 et 45).

2°) Lors de la validation du formulaire ces données sont envoyée dans ma base de données et forment correctement un horaire au format '18:45:00' (les secondes sont toujours à zéro puisque non renseignées par l'utilisateur).

3°) Ensuite une page de vérification des données affiche les valeurs insérées dans la DB.

Mon soucis apparait quand je veux afficher les données, lorsque que l'utilisateur à choisi '00' pour les minutes cela n'affiche que '0' le second zéro passe à la trappe.

Explications techniques:

Les variables capturant les données des 2 listes déroulantes sont $hr pour les heures et $mr pour les minutes.

Celles ci sont concaténées pour former la variable qui va être insérée dans la DB de la manière suivante : $horaireReserv = $hr.":".$mr.":00";

Pour afficher l'horaire pour vérification j'utilise une variable différente (je sais c'est pas obligatoire) : $afficheHeure = $hr.":".$mr;

Quand je fais un <?php echo($afficheHeure); ?> si l'utilisateur à choisi '00' minutes l'affichage donne : '18:0'

Je ne sais pas comment remédier à ce problème, voyez vous où est mon erreur et comment afficher correctement '18:00' ?
Modifié par LordBatoon (27 May 2010 - 21:00)
Salut,

Je pense qu'il manque un bout de ton m

edit : Smiley cligne
Modifié par Mikachu (27 May 2010 - 20:15)
Bonjour,

Si j'ai bien compris le titre du sujet, ceci devrait pouvoir te servir:


function addZero($nombre, $taille)

{

	while(strlen($nombre) < $taille)

		$nombre = '0'.$nombre;


	return $nombre;

}
Salut,

Même si c'est résolu, on peut en profiter pour (re)découvrir la fonction str_pad qui complète une chaîne jusqu'à une taille donnée.

function addZero($nombre,$taille){
	return str_pad((string)$nombre,$taille,'0',STR_PAD_LEFT);
}
Hum... j'ai trouvé là où ça pêchait avec ma technique. Smiley confused

Dans mes listes déroulantes pour '00' affiché, la valeur envoyée était '0', tout simplement!
Une fois corrigée cette petite erreur cela fonctionne parfaitement.

Je trouvais ça bizarre aussi, on peut très bien écrire un integer de valeur '000000' qui sera affiché correctement, je ne voyais pas pourquoi je devais bidouiller pour afficher des minutes égales à '00'. Smiley lol

Quand on dit qu'en programmation 95% des problèmes se situent entre le clavier et le cerveau des utilisateurs, c'est pas pour rien. Smiley biggol

Une toute petite erreur qui m'a fait perdre bien du temps... en tout cas merci pour vos réponses (qui fonctionnent aussi).
Modifié par LordBatoon (28 May 2010 - 05:16)