Page 1 sur 2

champ text et formulaire

Posté : 04 juil. 2006, 13:49
par skyangel
Bonjour,

Je suis en train de revoir un formulaire. Dans certains champs , on y met la valeur extraites de la bdd. Dasn d'autres, il n'y a pas de valeurs enregistrés.

Lorsqu'on valide le formulaire, il reprend ls champs renseignés par les valeurs de la bdd.
Mais si lors de la validation, il y a une erreur de saisie, on demande de corriger les champs. Mais il ne reprend pas les valeurs que l'utilisateur a saisie (par contre il reprend les valeurs de la base de données.

Ce que j'aimerais, c'est que si le champ contient une valeur (de la bdd) il réaffiche cette valeur lors du submit. Mais si le champ ne contenait rien au départ, et que l'utilisateur saisissent une valeur , il la réaffiche dans le champ lors de la saisie.

J'ai testé ainsi :
value="<?php if ($ligne[7]){ echo $ligne[7]; } else { echo $_POST['ligne_douai']; }?>"
Avec cette modification la , ca ne fonctionne pas. Puis je savoir comment on fait pour ce léger problème.

Si jamais c'est pas clair, dites le moi.

Merci d'avance

Posté : 04 juil. 2006, 14:04
par skyangel
j'ai regarde ce lien la mais ca ne résoud pas mon problème

http://www.phpfrance.com/forums/viewtop ... ht=#132606

Posté : 04 juil. 2006, 14:07
par bunk
j'aurais mis ca :
if (isset($_POST["champ"])){$champ = $_POST["champ"];}else{$champ = '';}
value="<?php echo $champ; ?>"

Posté : 04 juil. 2006, 14:29
par skyangel
ok mais $champ doit toujours être rempli!!

Posté : 04 juil. 2006, 14:31
par skyangel
soit prendre la valeur stockée soit prendre la valeur saisie.

Posté : 04 juil. 2006, 14:31
par bunk
il faudrais peut être vider le champ apres ou avant la requet pour qui reprenne la valeur saisie en cas d'erreur.

Posté : 04 juil. 2006, 14:41
par skyangel
J'ai fais ca:
if (isset($ligne[7])){ $champ = $ligne[7] ; } else{ $champ =$_POST['ligne_douai']; }
value="<?php echo $champ;?>">
Seulement ca ne marche pas.

Posté : 04 juil. 2006, 14:45
par bunk
j'aurais plutot fais :
if (isset($_POST["ligne_douai"])){$ligne_douai = $_POST["ligne_douai"];}else{$ligne_douai = '';}
et :
value="<?php echo $ligne_douai;?>">

ton champ est toujours plein ? avec la valeurprovenant de la table ?

Posté : 04 juil. 2006, 14:52
par Invité
non mon champ n'est pas toujours plein en provenance de la table.
Il peut etre plein ou vide . certains champs ne sont pas obligatoires.
Il y a un autre probleme qui en découle de ce probleme
SI jamais je veux modifier en champ existant et que je me trompe il va me remettre les champs de la bdd et pas la modification saisie.

ex:

LE champ contien 128 pour le telephone.
J modifie en 129
Je fais valider , il me met un message comme quoi j'ai oublié un champ (normal et fais expres). Je retourne voir mon champ téléphone et la il me le remet en 129 .

Ce devient frustrant . Je vais tester ton dernier post

Merci en tout cas

Posté : 04 juil. 2006, 14:55
par skyangel
j'ai testé ta deuxième solution .

La lors du submit , il reprend bien ma valeur saisie.

On approche. cependant, en arrivant sur la page il n'affiche plus la valeur de la bdd mais un blanc.
alors qu'a la base il y avait 128.

ex:

j'arrive sur la page.
le champ telephone contient "" alors que normalemeent il doit contenir "128".
Je modifie et je submit.
il retient bien ma modification.

Posté : 04 juil. 2006, 15:02
par bunk
Essai ca :

if (isset($_POST["ligne_douai"])){$ligne_douai = $_POST["ligne_douai"];}else{$ligne_douai = $ligne[7];}

Posté : 04 juil. 2006, 15:13
par skyangel
c 'est ce que j'essai :)
Je pense que ca va etre bon mais je voudrais tester a fond

Mais je vais deja dans sle bon sens.

Merci en tout cas.

Posté : 04 juil. 2006, 15:20
par skyangel
c'est parfait. Ca marche bien . Merci a toi. Et bonne continuation

On peut cloturer le message

Posté : 04 juil. 2006, 15:26
par bunk
tu as le bouton résole en haut à gauche pour cloturer !

Posté : 04 juil. 2006, 16:03
par skyangel
je suis pas membre aussi.
En meme temps , j'ai une question dans la continuité.

Comment faire pour avoir la meme chose avec des balises select.
Il faut que je place "selected" sur la bonne option /.
j'utilise la meme méthode?? Je vais tester!

Merci