Partage
  • Partager sur Facebook
  • Partager sur Twitter

[AJAX/php]exemple de formulaire

    29 décembre 2009 à 20:24:58

    Bonjour,

    Dans mon site, je fait des formulaires de cette formes :

    Il y a des champs à remplir de type texte, ou date, ou liste déroulante.
    Lorsque l'internaute valide le formulaire, un script javascript contrôle les données, et lance soient une boîte de dialogue si les données entrées ne sont pas bonnes, soit une page php chargé de remplir les données dans ma base de données.
    Ensuite, il lance une boite de dialogue java script pour dire que l'insertion a été réussi, et les champs de mon formulaire sont réinitialiser (ma page initiale n'est pas rechargé).

    Le seul problème, c'est que s'il y a un problème, comme un échec de connexion avec la base de données, mon script affichera quand même ma boîte de dialogue qui dit que l'insertion a été réussi. Je n'arrive pas a faire des actions en fonction de se qui s'est passé dans ma page php chargé.

    L'autre problème, c'est que je viens de débuter le développement web, et j'ai lu rapidement quelques tutoriel, repris des codes par ci par là, mais je suis sûr que ce que j'ai fait est moche, ou pas trés astucieux, et qu'on peut faire mieux.

    Du coup je me demande si quelqu'un aurait un exemple de formulaire du type que je veux faire, bien écrit ? J'ai cherche dans le site http://www.codes-sources.com, mais je n'arrive pas à trouver de formulaire du type que je viens de décrire.

    Merci d'avance

    Cédric
    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2009 à 20:30:10

      Il n'existe pas vraiment de truc tout pret pour ton cas.

      Montres nous ton code et on t'aidera.
      • Partager sur Facebook
      • Partager sur Twitter
        29 décembre 2009 à 20:44:46

        Ok voici mon code source :

        Voici le code d'une de mes pages qui contient un formulaire :
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
        <link href="CSS-severine.css" type="text/css" rel="stylesheet">
           <head>
               <title>Gestion un fournisseur/title>
               <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           </head>
         
            <body>
                <script type='text/javascript'>
                    <!--
                    function maFonctionAjax(nomentreprise, adresseentreprise, telephoneentreprise)  //Trouver comment faire pour que ca puisse marché avec plusieurs parametre
                    {
                      //je peux controler ici mes champs, et si c'est pas bon, je lance un warning et j'arrete cette fonction
                      var OAjax;
                      if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
                      else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP'); 
                      OAjax.open('POST',"traitement.php",true);
                      OAjax.onreadystatechange = function()
                      {
                          if (OAjax.readyState == 4 && OAjax.status==200)
                          {
                              if (document.getElementById)
                              {    
                                  if (OAjax.responseText =='true') { 
                                        document.getElementById('msg').innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
                                  }else{                        
                                        document.getElementById('msg').innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
                                  }
                              }     
                          }
                      }
                      OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
                      OAjax.send('nomentreprise='+nomentreprise+'&adresseentreprise='+adresseentreprise+'&telephoneentreprise='+telephoneentreprise);
        
                      alert('Vos modification ont été prises en compte'); //Mon probleme est la : j'affiche que les modification sont reussi alors que je sait pas ce qui c'est passé dans le fichier traitement.php
                    } 
                    //-->
                </script>
                <div align="left" id = "administration">
                    <div id = "ajouterFournisseur">
                        <h1>Administration</h1>
                        <h2>Ajouter un fournisseur</h2>
                        <!-- <form method="post" action="traitement.php"> -->
                        <form method="post"  name = 'form_ajouterFournisseur' onsubmit="maFonctionAjax(this.nomentreprise.value,this.adresseentreprise.value,this.telephoneentreprise.value);return false" action="">
                            <table>
                                <tr>
                                    <td><label for="nomentreprise">Nom</label></td>
                                    <td><input type="text" name="nomentreprise" id="nomentreprise" /></td>
                                </tr>
                                <tr>
                                    <td><label for="adresseentreprise">Adresse</label></td>
                                    <td><input type="text" name="adresseentreprise" id="adresseentreprise" /></td>
                                </tr>
                                <tr>
                                    <td><label for="telephoneentreprise">Téléphone</label></td>
                                    <td><input type="text" name="telephoneentreprise" id="telephoneentreprise" /></td>
                                </tr>
                            </table>
                            <input type="submit" value="Valider"onClick = 'document.forms["form_ajouterFournisseur"].elements["nomentreprise"].value = "";
                                                                            document.forms["form_ajouterFournisseur"].elements["adresseentreprise"].value = "";
                                                                            document.forms["form_ajouterFournisseur"].elements["telephoneentreprise"].value = ""'/>
                            <input type="reset" value="Reinitialiser"/> 
        
                        </form>
                    </div>
                </div>
            </body>
        </html>
        


        Voici le code de mon fichier traitement.php:
        <?php 
        
        $nomentreprise = $_POST["nomentreprise"];
        $adresseentreprise = $_POST["adresseentreprise"];
        $telephoneentreprise = $_POST["telephoneentreprise"];
        $connect = pg_connect("host=myhost user=cedrix password=mdp dbname=cedrix_bd01");
        if(!$connect){
            echo "Impossible de se connecter à la base de données\n";
            //$_SESSION['reussi'] = false;
        }
        $requet = "INSERT INTO Fournisseur(nomEntreprise, adresseentreprise, telephoneentreprise)
                    VALUES ('$nomentreprise', '$adresseentreprise', '$telephoneentreprise')";
        
        //$_SESSION['reussi']=pg_query($requet); //je n'arrive pas a recuperer cette variable, mais meme si je la recupererai ce serait moche je pense
        
        if(pg_query($requet)){
            //Je sait que tout s'est bien passé
        }else{
            //Je sait que tout ne s'est pas passé commé prévu
        }
        
        ?>
        

        • Partager sur Facebook
        • Partager sur Twitter

        [AJAX/php]exemple de formulaire

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown