Formulaire

Résolu
Bonjour,
jai une base de données avec une table sur easyphp ! je veux créer un formulaire html ( ou doit mettre un boutton enregistrer et des champs biensure ! ) apres le remplissage des champs; jaimerai ke les info saisies s'envoient automatiquement a la table dans la base de données dés que je clique sur le bouton enregistrer !!!!! svp jai besoin de l'aide :-(
Configuration: Windows XP
Internet Explorer 6.0

36 réponses

Résumé de la discussion

La problématique porte sur la création d'un formulaire HTML qui, après remplissage, envoie automatiquement les données vers une table de base de données lors du clic sur le bouton enregistrer. La solution préconisée consiste à orienter l'envoi vers une page PHP via l'attribut action, puis à récupérer les valeurs avec $_POST et à les insérer dans la base par INSERT INTO. Les détails clés incluent la connexion à la base (par exemple mysqli_connect), la construction d'une requête INSERT correspondant aux colonnes de la table, et la gestion des erreurs SQL. En cas d'erreur, vérifier la correspondance exacte entre les noms d'entités et les colonnes, et éviter les apostrophes dans les champs texte pour limiter les erreurs.

Bobot (l’IA à votre service)
  1. non en fait tu met le script et le onkeyup dans la page html !
    1. alors pour modifier l'apparence de ta page
      tu modifie la balise <body>
      pour mettre une image en fond d'ecran tu met une image dans le dossier ou se trouve tes deux page (formulaire et ajout ) et tu rajoute background='nomdelimage.extde limage'
      un exemple si ton image s'appelle image.jpg
      cela donnera:
      <body background='image.jpg'>

      si tu veux juste mettre une couleur il faut mettre bgcolor='lacouleur'
      un exemple <body bgcolor='red'>
      tu peux aussi mettre de couleur hexadecimal
      exemple <body bgcolor='#D36517' >

      pour ce qui est d'agrandir (ou rediure) tes zones de texte il faut ajouter l'attribut size dans les input
      exemple:
      <input type='text' name='num' size='3' />

      le chiffre que l'on met correspond au nombre de caractére (ici l'espace texte fera la taille de 3 caractéres)

      un autre petit truc qui peut etre utile si tu veut limité le nombre de caractére dans un espace texte il faut mettre maxlength
      un exemple:
      si on veut limiter a 5 caractére

      <input type='text' name='num' maxlength='5' />
      alors tu peut trés bien determiner la taille et le nombre de caractére ce qui donne:
      <input type='text' name='num' maxlength='5' size='3' />
      voila!

      1. c good ça fonctionnent
        dans ta page tu met:

        <script type="text/javaScript">
        function chiffres(objInput)
        {
        var reg = /^[0-9]*$/;

        if(!reg.test(objInput.value)){
        objInput.value = objInput.value.substring(0,objInput.value.length-1);
        }
        }
        </script>

        et ensuite dans le input ou tu veut empecher de mettre des lettre tu met :
        onkeyup="chiffres(this)" onkeydown="chiffres(this)"
        exemple(pour ton input qui correspond au numero):

        <input type='text' name='num' onkeyup="chiffres(this)" onkeydown="chiffres(this)" />

        voila!
        1. jdoi mettre le script dans la page.php et nokeyup dans la page.html necpa !!?
      2. tu entend quoi par modifier ?
        1. ajouté un théme ( arriére plan ) modifié des couleur agrandire un peu les zone de text et les label esk c possible ou nn ?!
      3. je vien peut etre de trouver un script qui correspond a ce que tu cherche ! je le teste et je te dis quoi !
        1. ok c bon jtatend !
      4. alors !
        pour etre franc je ne sais pas coment empecher de rentrer des lettres mais en revanche je sais comment on peut faire en sorte de verifier que le contenue du texte est un chiffre et si ce n'est pas le cas envoyer un message d'alerte signalant que le texte n'est pas conforme !
        si ça peut t'interesser !(mais la on vas passer par du javascript!!)
        1. ah ok c bpn pa grave !
          et si je vu modifier le formulaire ! ajouté théme des images ...
      5. salut !
        content que ça fonctionnent et si tu as d'autre besoin n'esite pas
        par contre je n'est pas de msn mais au pire tu as mon mail !
        1. Bjr ca va !? bon oui ca marche bien merci pour ton aide :-)
          mnt pour les champ par ex champ numero je veu ke kon je ca permi de saisie que du nombres pas de lettres !!
      6. POUR MODIFIER UNE ENTITéSUR LA CONSOLE SQL TU DOIS TAPER

        ALTER TABLE courrier_départ MODIFY date varchar(25);

        mais je ne sais pas comment fonctionne nt easyphp !
        si tu a une console sql tu peut faire ça !
        1. c on ca marché tres bien ! jte remércie tres fort et jaimerai bien te connaitre et rester on contacte ac toi ! file moi ton msn ! merci encore et dsl pour le dérangement jvai continuer mon projet et si jaurai dotr prob jte disai ok mec
          a+
      7. oui c'est normal 12/10/2009 et considere comme une chaine de carctére !
        1. dans la table jai essayer de modifier mai rien a changer ainsi dans le code sur ajout.php jai fai ce ke tu ma di mai ok1 solution !!!!! le mm msg !!!!!
      8. ok !
        ben pour la date c'est parce que dans ta table tu a mis un format date ! modifie le en format varchar et ça sera niquel !
        1. il me donne : " ce n'est pas un nombre " !!!!!!!!!!!
        2. ou sinon a la ligne 15 de ajout.php tu as :

          $da="$jdate / $mdate / $adate";

          remplace le par:

          $da="$adate - $mdate - $jdate";

          car les date dans les base de donnée sont en: année-mois-jour
          et non pas jour-mois-année comme on a l'habitude !
      9. bonjour ,
        pour enregistrer tes données dans les tables de la base de données ,
        tu auras besoin des requètes SQL .
        d'abord , il faut :
        une connexion à la base
        puis ta requète : (insertion des données ou récupération des données)
        pour cela tu peux utiliser du code PHP :
        voici un exemple pour la connexion à la base de données :

        <?php
        $base = mysql_connect ('mon_serveur', 'login', 'password');
        mysql_select_db ('ta_base_de_donnees', $base) ;
        ?>

        exemple de récupération de données :
        <?php
        // lancement de la requete
        $sql = ' INSERT INTO table VALUES ('','livre','1234');
        ';
        // on lance la requête (mysql_query) et un message d'erreur s'affiche si la requête ne
        se passe pas bien (or die)
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        // on recupere le resultat sous forme d'un tableau
        $data = mysql_fetch_array($req);
        // on libère l'espace mémoire alloué pour cette interrogation de la base
        mysql_free_result ($req);
        mysql_close ();
        ?>
        bn courage
        1. merci bcp :-))))))))
      10. je t'indique d'ou vient l'erreur !
        a la ligne 35 de ton page.php tu a
        $rq="INSERT INTO courrier_départ(Numero,Date,Destinataire,Adresse,Ville,Pays,Piéces,Désignation1,Désignation2,Emargement)
        ce qu'il y entre les parenthèses correspond a ce qu'il y a dans ta table (les entités) if faut donc que tu verifie que ta table contient bien les entité suivante:

        Numero
        Date
        Destinataire
        Adresse
        Ville
        Pays
        Piéces
        Désignation1
        Désignation2
        Emargement

        il faut que tes entité et ce qui est mis entre les parenthése dans
        courrier_départ(Numero,Date,Destinataire,Adresse,Ville,Pays,Piéces,Désignation1,Désignation2,Emargement)
        sois rigouresement les mémes (si tu met piéces et que ton entité s'appelle pièces il ne va pas l'accepter)
        c'est pour ça que j'aimerais que tu m'envois tes entités via un copier coller comme ça ça limite les erreur de frappe !

        1. oui tavai raison yavai des champs ki sont identique ; mai c bon jai tou réglé sont les mémes mnt mai encore me donne ce msg : " Erreur SQL : Incorrect date value: '27 / 03 / 2009' for column 'date' at row 1 " !!!!
      11. ok !
        donc c'est ton entité piéce qui n'est pas reconnue !
        pourrais tu verifier ta table (c'est surement une erreur a la con du genre piece au lieu de piéce )
        et fais un copier coller des entités comme j'aurai le nom exact !

        1. alors a la ligne 39 tu a
          $result=mysqli_query($connexion,$rq)
          or die ("requette echouée");

          tu remplace par
          $result=mysqli_query($connexion,$rq)
          or die ('Erreur SQL : '.mysqli_error($connexion));
          et normalement il va t'indiquer un message d'erreur !

          en fait l'erreur doit venir d'un nom d'entité mais lequel ? c'est a ça que va servir le message d'erreur !

          sinon petite precision ne met pas d'apostrophe dans les champs text de ton formulaire ça peut etre ça qui crée une erreur
          1. nn je met pa dapostrphe !! ca donne cette foi si :
            " Erreur SQL : Champ 'piéces' inconnu dans field list "
        2. si a chak foi je met enregistrer vasy réecri bien le dérnier code je pense ke il te fau kelk chose !!!
          1. pense a enregistrer ta page (ctrl+s) a chaque fois sino il ne vas pa prendre en compte les changement !
            1. non il faut laisser method post car dans ajout tu recupere tes donnée par $_post !
              a la ligne 40 a la place de ;
              or die ("requette echouée");

              met
              or die ('Erreur SQL : '.mysqli_error($connexion));
              et dis moi le message qu'il t'affiche !!
              on en vient a bout ! tinkiet !!
              1. ok !
                je vien de voir que pour easy php il y a un mots de passe qui est par defaut : mysql

                alors dans ajout.php a la ligne 27 tu trouve:
                $password="";
                si tu a mis un mot de passe tu le met entre les "" sinon tu met mysql
                ce qui donne (si tu n'a pas mis de mot de passe):
                $password="mysql";

                reassaye et di moi ce que ça donne !
                1. ca donne " requette echouée " !!!!!!
                  dsl pour le dérangement !
                2. je pense que dans le fichier formulaire.html a la place de methode='post' on met methode='get' .???!! non !
                  sinon peut etre dans la ligne de connexion (ligne 29) dans le fichier ajout.php !!!!!!!!
                3. ecrit ca bien : ('Erreur SQL : '.mysqli_error($connexion));
                  sinon ca me donne le mm msg requete echoué !
              2. ok !
                je vien de voir mon erreur si tu ouvre page.php dedans il y a une ligne (la ligne 15) avec:
                $da="$jdate / $mdate / $adate"
                et bien tu rajoute un ; a la fin ce qui nous donne:
                $da="$jdate / $mdate / $adate";

                voila ! reassaye et di moi si il t'affiche d'autre erreur
                1. ok merci c bon jai fai mai me donne ce msg encore !!!!!! :
                  " Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Accès refusé pour l'utilisateur: 'root'@'@localhost' (mot de passe: NON) in C:\Program Files\EasyPHP 3.0\www\ajout.php on line 32
                  connexion echouée "
              • 1
              • 2