IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Maintien de l'affichage sur formulaire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 27
    Par défaut Maintien de l'affichage sur formulaire
    Bonjour,

    Je suis sur une fiche client et j'ai modifié le script de façon à ce que soit automatique à l'affichage :
    * Le nom complet en Majuscules
    * La 1ère lettre du prénom en Majuscule
    * La 1ère lettre de la commune en Majuscule
    * Le N° SIRET soit tronqué tous les 3 chiffres par un espace
    * Le N° de Tel soit tronqué tous les 2 chiffres par un point

    Quand je modifie la fiche client ça marche mais si j'enregistre encore, l'affichage n'est plus correct.

    Lors de la saisie :
    Nom : saisie.png
Affichages : 186
Taille : 10,5 Ko

    Après l'enregistrement :
    Nom : enregistrement.png
Affichages : 186
Taille : 11,0 Ko

    Après un 2e enregistrement si aucune modification faite :
    Nom : enregistrement2.png
Affichages : 178
Taille : 11,0 Ko

    Je vous soumet le script car je ne vois pas où est l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php
    if (!defined('IN_WWW') || !defined('IN_ADMIN'))
        exit();
     
    if(!isset($prenom))
        $prenom = '';
    if(!isset($nom))
        $nom = '';
    if(!isset($ste))
        $ste = '';
    if(!isset($siret))
        $siret = '';	
    if(!isset($adresse))
        $adresse = '';
    if(!isset($adresse2))
        $adresse2 = '';
    if(!isset($cp))
        $cp = '';
    if(!isset($commune))
        $commune = '';	
    if(!isset($email))
        $email = '';
    if(!isset($mobile))
        $mobile = '';
    if(!isset($fixe))
        $fixe = '';
    if(!isset($fax))
        $fax = '';	
    if(!isset($email_paypal))
        $email_paypal = '';
    if(!isset($commentaire))
        $commentaire = '';
     
    $site_Content .= '
    <form name="form1" id="form1" method="post" action="">
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <tr>
          <td height="30">Nom</td>
          <td><input name="nom" value="'.ucfirst(strtoupper($nom)).'" type="text" id="nom" /></td>
          <td>Pr&eacute;nom</td>
          <td><input name="prenom" value="'.ucfirst(strtolower($prenom)).'" type="text" id="prenom" /></td>
        </tr>
    	<tr>
          <td>Date de naissance</td>
          <td><input name="naissance" value="'.$naissance.'" type="date" id="naissance" /></td>
          <td></td>
          <td></td>
        </tr>
      </table>
    <br /><br /><br />
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">	
    	<tr>
          <td height="30">St&eacute;</td>
          <td><input name="ste" value="'.$ste.'" type="text" id="ste" /></td>
          <td>SIRET</td>
          <td><input name="siret" value="'.chunk_split($siret,3,' ').'" type="text" id="siret" /></td>
        </tr>
    	<tr>
          <td height="30">Adresse</td>
          <td><input name="adresse" value="'.$adresse.'" type="text" id="adresse" /></td>
          <td></td>
          <td></td>
        </tr>
    	<tr>
          <td height="30">Adresse (compl&eacute;ment)</td>
          <td><input name="adresse2" value="'.$adresse2.'" type="text" id="adresse2" /></td>
          <td></td>
          <td></td>
        </tr>
    	<tr>
          <td height="30">CP</td>
          <td><input name="cp" value="'.$cp.'" type="text" id="cp" /></td>
          <td>Commune</td>
          <td><input name="commune" value="'.ucfirst(strtolower($commune)).'" type="text" id="commune" /></td>
        </tr>
      </table>
    <br /><br /><br />
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">	
    	<tr>
          <td height="30">e-mail</td>
          <td><input name="email" value="'.$email.'" type="text" id="email" /></td>
          <td></td>
          <td></td>
        </tr>
    	<tr>
          <td height="30">N&deg; Portable</td>
          <td><input name="mobile" value="'.chunk_split($mobile,2,'.').'" type="text" id="mobile" /></td>
          <td>N&deg; Fixe</td>
          <td><input name="fixe" value="'.chunk_split($fixe,2,'.').'" type="text" id="fixe" /></td>
        </tr>
    	<tr>
          <td></td>
          <td></td>
    	  <td height="30">N&deg; Fax</td>
          <td><input name="fax" value="'.chunk_split($fax,2,'.').'" type="text" id="fax" /></td>
        </tr>
    	<tr>
          <td height="30">e-mail Paypal</td>
          <td><input name="email_paypal" value="'.$email_paypal.'" type="text" id="email_paypal" /></td>
        </tr>
      </table>
    <br /><br /><br />
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">	
    	<tr>
          <td height="30">Commentaire</td>
          <td><input name="commentaire" value="'.$commentaire.'" type="text" id="commentaire" /></td>
        </tr>
        <tr>
          <td colspan="4"><br />
          <input type="submit" name="Submit" value="Mettre &agrave; jour" /></td>
        </tr>
      </table>';

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    C'est normal : à chaque affichage, tu appliques une transformation, puis tu enregistres la chaine transformée.

    Par exemple, si on prend le numéro de téléphone :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="mobile" value="'.chunk_split($mobile,2,'.').'" type="text" id="mobile" />
    A la saisie : tu tapes 0601020304. Le traitement du formulaire enregistre la donnée telle qu'elle est reçue du formulaire (je suppose) donc 0601020304.
    Affichage des données la 1ere fois : La valeur en base est 0601020304, on applique le chunk dessus, découpage par blocs de 2 :06/01/02/03/04, on affiche donc 06.01.02.03.04, qu'on enregistre en base.
    Nouvel affichage des données : La valeur en base est 06.01.02.03.04, on applique le chunk dessus, découpage par blocs de 2 06/.0/1./02/.0/3./04, on affiche donc 06..0.1..02..0.3..04, qu'on enregistre en base
    Tu vois le problème ?

    Ce qu'il faut faire, c'est appliquer la fonction à l'enregistrement des données, pas lors du remplissage du formulaire, et uniquement si le format n'est pas déjà correct (ce qui au passage permet de faire une validation de format)
    Autre possibilité : faire l'enregistrement de la donnée brute et la mettre en forme lors de l'utilisation (attention, uniquement pour un affichage et pas dans un formulaire)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 27
    Par défaut
    Donc j'ai plus intérêt à mettre en forme dans la BDD à l'enregistrement, non ? Comme ça que ce soit saisie en brut sur un formulaire ou coté admin, il sera formaté correctement.

  4. #4
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Hello,

    Je te conseillerais de garder le format brute pour la BDD, tu ajoutes les . pour l'affichage, et les supprimes pour l'enregistrement. Tu sais ainsi toujours dans quel cas tu te trouve.

    Si tu formate dans la BDD, en cas d'édition, cela te rajoute une étape de verification des données.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 27
    Par défaut
    Citation Envoyé par Geoffrey74 Voir le message
    Hello,

    Je te conseillerais de garder le format brute pour la BDD, tu ajoutes les . pour l'affichage, et les supprimes pour l'enregistrement. Tu sais ainsi toujours dans quel cas tu te trouve.

    Si tu formate dans la BDD, en cas d'édition, cela te rajoute une étape de verification des données.

    Comment faire stp car je découvre la programmation avec BDD...

  6. #6
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Le travail se fait en php, comme tu le fait chunk_split($mobile,2,'.') (en supprimant le dernier . )

    En BDD, tu aura ton numéro sous la forme 0612345678
    Pour l'affichage, tu rajoute les . et pour l'édition tu l'affiche brute, ainsi, la seule transformation que tu fais est pour l'affichage.

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Dans tous les cas, il va te falloir une vérification de format, pour éviter de mettre en forme une donnée déjà mise en forme (sinon tu auras juste déplacé le problème)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [AC-2010] Formulaire double affichage sur formulaire unique ?
    Par AlPot dans le forum IHM
    Réponses: 9
    Dernier message: 29/12/2012, 17h25
  2. [AC-2000] Affichage sur formulaire des statistiques de la requête
    Par Christ79 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/05/2012, 08h37
  3. ordre d'affichage sur formulaire
    Par yayox dans le forum IHM
    Réponses: 2
    Dernier message: 25/11/2006, 12h14
  4. Requete mise à jour:erreur affichage sur formulaire
    Par milielf dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/07/2006, 11h25
  5. Problème d'affichage sur formulaire
    Par PAUL87 dans le forum Access
    Réponses: 3
    Dernier message: 27/06/2006, 23h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo