Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2011, 19h35   #1
Invité de passage
 
Inscription : novembre 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 12
Points : 1
Points : 1
Par défaut formulaires a 2 niveaux de validation

Bonjour
j'ai un soucis dans mon développement de formulaire
je dois concevoir un formulaire à deux niveaux:

Saisie des details d'une offre

Après la création de l'offre, je recupère le numero de l'offre avec une variable de session pour afficher les données de l'offre (designation, datecreation)
sur la 1ere partie de mon formulaire j'ai donc deux paragraphes :
-une contenant les données de l'offre
- une contenant les produits et leur quantités.

Blocage 1 : l' insertion de la ligne nom du produit et quantité dans la deuxième partie du formulaire.

y aurait t'il un moyen en php sans l'utilisation du javascript ?
http://rockenso.skyrock.com/, j'ai mis la maquette en plus afin de mieux preciser mon commentaire

Merci de votre aide
dufeu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 14h27   #2
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
En clair, les informations à afficher sur la seconde partie du formulaire dépendent de celles saisies sur la première ?
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 14h33   #3
Membre éclairé
 
Avatar de EIN-LESER
 
Homme Sebastian
Développeur Web
Inscription : mai 2008
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sebastian
Âge : 35
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 380
Points : 318
Points : 318
Envoyer un message via MSN à EIN-LESER
Pourquoi ne pas vouloir utiliser JavaScript?
La plupart des codes php contiennent a un niveau ou a un autre un peux de JavaScript.
__________________
Spécialiste des questions bêtes

L'urgent est fait, l’impossible est en cour, pour les miracles prévoir un délai

Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour
EIN-LESER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 14h37   #4
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par EIN-LESER Voir le message
Pourquoi ne pas vouloir utiliser JavaScript?
La plupart des codes php contiennent a un niveau ou a un autre un peux de JavaScript.
Est-il vraiment obligé ? Il a le choix de vouloir ou pas de Javascript. Aucune raison de se justifier à mon avis.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 14h52   #5
Membre éclairé
 
Avatar de EIN-LESER
 
Homme Sebastian
Développeur Web
Inscription : mai 2008
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sebastian
Âge : 35
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 380
Points : 318
Points : 318
Envoyer un message via MSN à EIN-LESER
Ne me comprends pas mal je ne disais pas cela pour une justification quelconque mais pour savoir si cela venait d'un choix personnel ou liée a une obligation technique par exemple.

Il est extrêmement pratique de se servir des 2 sur une page a mon avis entre autre pour pouvoir exécuter certains codes au moment d'un changement de la page sans obligatoirement devoir passer par le renvoi au serveur.

Il faudrait au moins qu'on puisse voire un petit bout de ton code je pense.
__________________
Spécialiste des questions bêtes

L'urgent est fait, l’impossible est en cour, pour les miracles prévoir un délai

Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour
EIN-LESER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 17h09   #6
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par EIN-LESER Voir le message
Il faudrait au moins qu'on puisse voire un petit bout de ton code je pense.
Exactement
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 12h59   #7
Invité de passage
 
Inscription : novembre 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 12
Points : 1
Points : 1
Bonjour.
Merci à tous pour votre intention de m'aider à resoudre mon probleme.
on doit utiliser au minimum possible le code js.
Voici le code de la page detailoffre.php comme demandé.

Code :
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<?php 
require_once("../connexion.php");
if(isset($_SESSION['DesigOffre']))
    {    
    if(!isset($_POST['operation']))
        {
        //une offre existe en paramètre
        $desigoffre = $_SESSION['DesigOffre'];
 
        try{
        //On seconnecte
        $bd = new PDO('mysql:host='.SERVEUR.';dbname='.BASE,NOM,PASSE);
 
        //On exécute une requête
        $q="SELECT * FROM offre WHERE OffreDesignation = '$desigoffre'  ";                                                     $resultat=$bd->query($q);
        //On récupère les lignes
                                                    $uneOffre=$resultat->fetch(PDO::FETCH_OBJ);
        //Et onferme le curseur                                           $resultat->closeCursor();
        }
        catch(Exception $e)
        {
            echo 'Erreur PDO:'.$e->getCode."--".$e->getMessage().'<br/>';
        }
 
    ?>
 
    <!--<table border="2" align="center" width="100%"> !-->
 
    <div id ="monForm">    
    <p align="center"> Details de l'offre</p>
    <!-- formulaire details offres -->
    <form action="detailoffre.php" method="post" name="detailOffre"         enctype="multipart/form-data" onsubmit="return is_filled();">
 
    <fieldset>
        <legend> Informations Sur L'offre :</legend>
                                                    <p><input  type="hidden" name="operation" value="insert" /></p>
 
 
        <p>
        <label for ="uneOffre[]">Ref de l'offre</label>
        <input type="text" name="uneOffre[]" value="" readonly="readonly"/>
        </p>
        <p>
        <label for ="uneOffre[1]">Designation</label>
        <input type="text" name="" value="<?php //echo $uneOffre[1]; ?>" readonly="readonly"/>
        </p>
        <br />
        </fieldset>
 
    <fieldset>
        <legend> Details de l'offre </legend>                                    
        <p> <label> Produit </label><select name="" value=""> </select></p>
        <p> <label> Quantité </label><input type="text" name="" value="" /> </p>
        <p>&nbsp;</p>
        <p align="center"><a href="#">INSERER LE PRODUIT DANS LISTE </a></p>
        <p>&nbsp;</p>
        <table width="100%" border="1" align="center" bordercolor="#FFCC66" bgcolor="#FFCC66">
                 <tr>
                  <td><div align="center"><strong>Nom Article </strong></div></td>
                  <td><div align="center"><strong>Prix Unitaire </strong></div></td>
                  <td><div align="center"><strong>Quantit&eacute;</strong></div></td>
                  <td><div align="center"><strong>Total Ligne</strong></div></td>
                 </tr>
                <tr>
                  <td><div align="center"><input type="text" name="textfield" /></div></td>
                  <td><div align="center"><input type="text" name="textfield2" /></div></td>
          <td><div align="center"><input type="text" name="textfield3" /> </div></td>
                  <td><div align="center"><input type="text" name="textfield4" /></div></td>
                </tr>
 
        <tr>
                  <td colspan="4">
        <p>&nbsp;</p>
        <p>&nbsp; </p>
 
        <p><label for ="uneOffre[3]">Montant Total <strong>HT</strong> </label>
           <input type="text" name="uneOffre[3]" value="" readonly="readonly"/>
        <p/>
 
        <p><label for ="uneOffre[4]" align="center"> Calcul BIC ? </label>
           <input type="radio" name="bic" id ="$uneOffre[]" value="1"  />Oui
           <input type="radio" name="bic" id ="$uneOffre[]" value="2" checked />Non
        <p/>
 
        <p><label for ="uneOffre[5]">Calcul TVA ? </label>
           <input type="radio" name="choixdg" id ="$uneOffre[15]" value="1" checked />Oui
           <input type="radio" name="choixdg" id ="$uneOffre[15]" value="2" />Non
        <p/>
 
        <p><label for ="uneOffre[6]">Montant TVA 18%</label>
           <input type="text" name="uneOffre[6]" value="" readonly="readonly"/>
        <p/>
        <p><label for ="uneOffre[7]">Montant BIC 2%</label>
                   <input type="text" name="uneOffre[7]" value="" readonly="readonly"/> 
        <p/>
        <p><label for ="uneOffre[8]">Total Général TTC</label>
               <input type="text" name="uneOffre[8]" value="" readonly="readonly"/>
        <p/>                                               
        <p align="center"><a href="#">CALCUL TTC</a> <p/>        
        </td>
           </tr>
         </table>
    </fieldset>
 
    <p align="center">
      <input type="submit" value="Enrégistrer">
          <input type="reset" value="Annuler">    
    </p>
    </form>    
</div>
 
    <?php
        }
        else
        {
        require_once("../connexion.php");
        $operation = $_POST['operation'] ;
        if($operation == "insert" )
        { // debut insertion
 
        $uneOffre = $_POST["uneOffre"];
 
        //Effectuer les traitements avant insertion
        $auMoinsUneDonneeInvalide = false;
        $messageErreur = "";
        //strlen = calcul de la longueur d'une chaine
        //trim =supprime les kteres vides
 
        //montant ht => non vide, decimal, superieur à 0
        $uneOffre[3] = filter_var($uneOffre[3], FILTER_SANITIZE_NUMBER_INT) ;
        if($uneOffre[3] <= 0 )
        {
        $auMoinsUneDonneeInvalide = true;
        $messageErreur = $messageErreur . "<br />Le montant doit etre strictement positif.";
        }
        if($interval == false || $interval->format('%R%a days')<0 )
        {
        $auMoinsUneDonneeInvalide = true;
        $messageErreur = $messageErreur . "<br />La date de depot ne peut pas etre revolue.";
        }
 
        if( $auMoinsUneDonneeInvalide == false ) // faire l'insertion
        {
        $uneOffre[0] = STRTOUPPER($uneOffre[0]);
        $montantHT = $uneOffre[3];
        $montantTTC =  $montantHT;
        $montantBIC = 0;
 
        if($uneOffre[5] == 'OUI') //tva
        {
        $montantTTC = $montantHT*1.18;
        }
        if($uneOffre[4] == 'OUI') //bic
        {
        $montantBIC = $montantTTC*2/100;
        $montantTTC = $montantTTC + $montantBIC;
        }
 
        try{
        //On se connecte
        $bd = new PDO('mysql:host='.SERVEUR.';dbname='.BASE,NOM,PASSE);
 
        //On exécute une requête
        //requete insertion
                                                        //on insert la  ligne                                                          $resultat=$bd->exec($q);
                                                        $uneOffre=$resultat;
 
        //verifier le nombre de ligne inserer                                                    if($uneOffre>0){
                                                        echo "Details ajoutés !";
                                                    }else{
                                                        echo "Details non ajoutés !<br /> $q";
        }
        }
        catch(Exception $e)
        {    
        echo 'Erreur PDO:'.$e->getCode."--".$e->getMessage().'<br/>';
        }
    }
    else
    {
    //il y'a au moins une erreur Afficher l'erreur
    echo "<div class=\"erreur\">$messageErreur</div>";
    }
    } //fin insertion
 
    echo '<a href="listeoffre.php">Retourner &aacute; la liste</a>';
                        }
                    }
                ?>
dufeu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 13h07   #8
Invité de passage
 
Inscription : novembre 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 12
Points : 1
Points : 1
Par défaut fichier image detailoffre

j'ajoute donc l'IHM de detailoffre.

Merci à tous
Images attachées
Type de fichier : jpg detailoffre1.jpg (68,2 Ko, 8 affichages)
dufeu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 19h41   #9
Invité de passage
 
Inscription : novembre 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 12
Points : 1
Points : 1
bonsoir
rien pour moi?
dufeu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2011, 20h55   #10
Membre actif
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 199
Points : 199
Sans javascript, tu seras obligé de recharger ta page des formulaires, qui contiendra donc les bonnes petites infos que tu veux, selon ce qui à été envoyé précédemment.
Ta variable de session de l'offre peu bien t'aider aussi.
nextdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h06.


 
 
 
 
Partenaires

Hébergement Web