Page 1 sur 1

comment enregistrer un espace dans un formulaire et dans la

Posté : 27 févr. 2008, 15:27
par chris51200
Bonjour a tous,
comment puis je enregistrer un espace dans un formulaire?
en fait je voudrais afficher un prix du type 500 000€. Sachant que cette valeur est enregistree dans la bdd sous la forme 500000 (sans espace).

Comment puis je faire? il faut agir a l'enregistrement de la valeur ou a l'affichage?

Posté : 27 févr. 2008, 16:14
par Xvider
En expression régulière je pense que ce sera le plus simple.

Verifier si on trouve des chiffres dans ce que l'on recup de la BDD
Et rajouter un espace tous les 3nombres.

Posté : 27 févr. 2008, 16:15
par d0m
Salut,

quand tu dis afficher, tu parles d'afficher où?
- dans un champ de saisi (INPUT) de type texte
- comme ça simplement dans la page
- dans un autre champ

Posté : 27 févr. 2008, 16:21
par chris51200
et bien je prepare un site de vente immobilier.
De part un formulaire, je mets a jours mes annonces. Mon soucis est que dans le formulaire de prix, je voudrais pouvoir rentrer le tarifs sous la forme : 100 000 euros ou 1 000 000 euros.
Donc des espaces entre les milles..
Quand je rentre ces espaces dans mon formulaire; ils ne sont pas pris en compte et l'enregistrement dans la bdd est la valeur saisie sans les espaces.

Le prix s'affiche ensuite dans une page autre

Posté : 27 févr. 2008, 16:34
par d0m
Tu peux utiliser la fonction replace pour remplacer les espaces ' ' par la chaine vide ''.

Posté : 27 févr. 2008, 16:49
par h0_noMan
Je pense que la champs PRIX de ta BDD est de type int() et je pense qu'il serait mieux d'afficher les espaces au moment de l'affichage (juste après avoir récupérer le PRIX dans la BDD)

Posté : 27 févr. 2008, 17:23
par chris51200
oui moi aussi je pensais que c'est a l'affichage qu'il faut arrnger la valeur mais comment?
comment inserer un espace tout les 3chiffres?

Posté : 27 févr. 2008, 17:34
par d0m
D'après ce que tu dis, tu voudrais qu'un nombre saisi avec des espaces soit aussi valide.
Il faut donc traiter la variable à la saisie et à l'affichage.
- Pour la saisie, utiliser str_replace sur le la valeur issue du champ de saisie avant de mettre en base
- pour l'affichage, une fonction est faite pour cela : number_format

Posté : 27 févr. 2008, 18:04
par Xvider
Tien avec ceci ça doit être bon.
<?php
function espacechiffre($message)
{
		$modulo = strlen($message)%3;
		if ($modulo==0)
		{
			$message= ereg_replace("[0-9]{3}","\\0 ",$message);
		}
		if ($modulo==1)
		{
			$message= ereg_replace("^[0-9]{1}","\\0 ",$message);
			$message= ereg_replace("[0-9]{3}","\\0 ",$message);
		}
		if ($modulo==2)
		{
			$message= ereg_replace("^[0-9]{2}","\\0 ",$message);
			$message= ereg_replace("[0-9]{3}","\\0 ",$message);
		}
return $message;
}
?>

Posté : 27 févr. 2008, 18:09
par h0_noMan
Tien avec ceci ça doit être bon.
Un peu lourd, alors qu'il y a une fonction PHP faite pour :
$nombre_format_francais = number_format($nombre, 2, ',', ' ');
// Nbr décimal        : 2
// Séparateur décimal : , (virgule)
// Séparateur Millier :   (espace)

Posté : 27 févr. 2008, 19:24
par Invité
ah ben je ne connaissais pas ça me sera bien utile :p

Posté : 28 févr. 2008, 09:32
par Ryle
Modération :
chris51200, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

Posté : 01 mars 2008, 11:31
par chris51200
oui ça y est, c'est resolu!!!
je me suis mis en text dans ma bdd et j'avais oublié des guillemets dans ma fonction value du formulaire
merci a tous de vos reponses!