champ text et formulaire

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 13:49

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

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 14:04

j'ai regarde ce lien la mais ca ne résoud pas mon problème

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

Eléphant du PHP | 291 Messages

04 juil. 2006, 14:07

j'aurais mis ca :
if (isset($_POST["champ"])){$champ = $_POST["champ"];}else{$champ = '';}
value="<?php echo $champ; ?>"

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 14:29

ok mais $champ doit toujours être rempli!!

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 14:31

soit prendre la valeur stockée soit prendre la valeur saisie.

Eléphant du PHP | 291 Messages

04 juil. 2006, 14:31

il faudrais peut être vider le champ apres ou avant la requet pour qui reprenne la valeur saisie en cas d'erreur.

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 14:41

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.

Eléphant du PHP | 291 Messages

04 juil. 2006, 14:45

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 ?

Invité
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 14:52

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

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 14:55

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.

Eléphant du PHP | 291 Messages

04 juil. 2006, 15:02

Essai ca :

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

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 15:13

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.

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 15:20

c'est parfait. Ca marche bien . Merci a toi. Et bonne continuation

On peut cloturer le message

Eléphant du PHP | 291 Messages

04 juil. 2006, 15:26

tu as le bouton résole en haut à gauche pour cloturer !

skyangel
Invité n'ayant pas de compte PHPfrance

04 juil. 2006, 16:03

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