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

ASP Discussion :

Traitements dans un formulaire


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Points : 61
    Points
    61
    Par défaut Traitements dans un formulaire
    Bonjour,

    voila j'ai un probleme.

    J'ai un formulaire ou il y a différents types de champs :

    --> Champs ou l'utilisateur doit renseigner des données
    --> Champs qui doivent être renseigés à partir d'une BDD
    --> Champs calculés à partir d'autres champs renseignés avant par l'utilisateur

    Alors voici le processus :

    l'utilisateur renseigne un champ code avec lequelle je fais une requete de selection dans ma base de données pour remplir d'autres champs.
    Puis, l'utilisateur renseigne d'autres champs et à partir de ces données je dois renseigner deux champs calculés. Puis l'utilisateur renseigne encore d'autres champs

    Enfin une fois que tous les champs du formulaire sont remplis je dois les insérer dans une table sql server.


    Donc le problème c'est que j'ai plusieurs traiements donc il me faut au moins 2 boutons submit pour mettre à jour les champs automatiques (BDD et Calculés) et un autre bouton pour insérer mes données dans ma table !

    Y a t il pas une solution plus simple car je suis un débutant en programmation ASP et c'est un peu compliqué ce traitement !

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Différence entres les champs
    Salut,

    Si j'ai bien tout capté tu dois faire une requête en Ajax avec le premier champ saisi pour retourner des valeurs dans le formulaire en cours de saisie.
    Ensuite sur les autres champs, tu peux calculer (via javascript) lorsque que ton utilisateur quitte la saisie de certains champs.

    Ce qui fait que ton bouton submit ne sert qu'a l'insert de tes données.

    Pour résumé
    tu as de l'ajax pour récupérer des données SQL
    tu as du javascript pour le calcul de certains champs
    Ton bouton submit est normal

    Pour info, j'utilise prototype.js pour les 2 premiers (Ajax et calcul)

    Bon courage

    Arno

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Points : 61
    Points
    61
    Par défaut
    Je connais pas l'ajax mais je vais voir !

    Une question,

    avec l'ajax et le javascript les champs se mettent à jour automatiquement à partir des champs saisis par l'utilisateur sans qu'il y ait une action ou que l'on doit cliquer sur un bouton ?

  4. #4
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    pour l'ajax tu mettra un input de type button à côté de la zone de saisie et tu associes une fonction js à ce bouton qui exécutera l'ajax qui remplira ton formulaire

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Utilisation d'Ajax
    Bonjour,

    Précision, j'utilise prototype.js

    Partie javascript de ton source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("id_de_ton_champ").observe("change",maSaisie.nomFonction.bindAsEventListener(maSaisie,'nom_div','id_champ'));
    id_de_ton_champ = <input type="text" id="id_de_ton_champ" /> champ sur lequel tu veux faire ton ajax

    nom_div ==> contient la zone qui sera remplie via l'ajax, exemple dans une chaine cela peut être <option>.. </option>

    exemple de nomFonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    nomFonction:function(e,container,Le_Applicatif)
        { 
            new Ajax.Updater(container,'nomASP.asp',{
                    method : 'get',
                    parameters: { 'Applicatif': $F(Le_Applicatif)}
                });
        }
    nomASP.asp nom de l'asp qui va chercher tes données.

    Le site traitant de prototype.js est vraiment bien fait, tu devrais trouver tout ce qu'il te faut.

    Bon courage

    Arno

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Ajax et prototype
    Bonjour,

    RetourneInfo est la procédure qui va te permettre de gérer l'appel à ton Ajax
    div_information est la division HTML qui va recevoir le tableau créé dynamiquement par ton fichier ASP qui est sensé récupérer les informations en fonction de ton code article.
    le_Applicatif est le paramètre de ta fonction RetourneInformation.

    En fait, tu dois pouvoir te passer de la déclaration de maSaisie (variable en JSON je crois, c'est un prestataire qui m'a développé ce bout de code).

    Ton code javascript devrait pouvoir se résumer à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $("Code_Article").observe("change",RetourneInfo.bindAsEventListener(maSaisie,'div_information','Code_Article'));
    Tu dois en effet appeler le prototype.js dans ton HEAD.

    En revanche, dans ton fichier donneInfo.asp tu n'as pas besoin d'intégrer des balises HTML, ton fichier peut se résumer à

    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
     
    <!-- #include file="Connexion_SQL.asp"-->
    <%
    ' sélectionne les informations relatives à notre article renseigné dans le formulaire AVK 
    dim Cstd ,Cpmp,CpmpD,Gart,KvM,KV,DLERP,DAPP,Conso, coutU , DelaiA  'variable qui stocke le données selon les différentes cas
    code= request("Code_Article")
    sql="select b.Description, b.[Coût STd], b.[Coût PMP], b.[Coût PMP déporté],a.[Groupe_art],a.[Unite],b.[Kv modifiée],b.[Kv],b.[Delai LREP (j)],b.[Delai d appro (j)]" & _
    "from T_EXTR_BASAMONT b,T_CALCUL_ARTICLE_AMONT a " & _
    "where A.ARTICLE = b.code_article and  b.code_article ='" & code & "'"
    set rs=conn.execute(sql)
     
    do while not rs.EOF
        Cstd=rs("Coût STd")
        Cpmp=rs("Coût PMP")
        CpmpD=rs("Coût PMP déporté")
        Gart=rs("Groupe_art")
        KvM=rs("Kv modifiée")
        KV=rs("KV")
        DLERP=rs("Delai LREP (j)")
        DAPP=rs("Delai d appro (j)")
        If Gart="MRPRM" or Gart="MRPRMD" then 
            coutU=Cstd
        elseif CpmpD<>"" or CpmpD<>999999 then
            coutU = CpmpD
        else coutU=Cpmp
        end if
     
        If rs("Kv modifiée")<>"" then
            ConsoM = rs("Kv modifiée")
        Else 
            ConsoM = rs("Kv")
        End If
     
        If rs("Delai LREP (j)")<>"" then
            DelaiA = rs("Delai LREP (j)") 
        Else DelaiA=rs("Delai d appro (j)")
        End If
     
        monRetourHTML = "<td width=340><font size=2><b>Désignation :</b></font><br>" & rs("description") & "</td>
    <td width=340><font size=2><b>Prix unitaire : </b></font><br>" & CoutU & "</td>
    <td width=340><font size=2><b>Délai d'approvisionnement :</b></font><br>" & DelaiA& "</td>
    <tr><td width=340><font size=2><b>Consommation mensuelle moyenne actuelle :</b></font><br> " & consoM & "</td>
    <td width=340></td></tr><tr><td colspan=2 width=682><font size=2><b><font color=red>Soit :</font>consommation mensuelle moyenne à prévoir (exprimée dans l'unité de mesure standard PSFT) :<br>
    <input name='Conso_Mens_APrev' size=20 maxlength=30>" & rs("Unite") & "<br>" 
            rs.movenext
    Loop
    Set rs=Nothing
    Response.Write monRetourHTML
    %>
    Ton fichier donneInfo.asp te sert à créer la partie de tableau dynamique, il faut le prendre comme si c'était une procédure que tu appelles.

    Bon courage

    Arno

    Le site ci dessous explique l'appel Ajax avec prototype.js pour du php, en le lisant tu auras peut être une autre façon d'expliquer que la mienne.

    http://blog.pascal-martin.fr/post/Un...avec-Prototype

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Points : 61
    Points
    61
    Par défaut
    Salut,

    en modifiant que tu me l'as dit, j'ai une erreur dans mon fichier donneInfo.asp

    au nivo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    monRetourHTML = "<td width=340><font size=2><b>Désignation :</b></font><br>" & rs("description") & "</td>
    <td width=340><font size=2><b>Prix unitaire : </b></font><br>" & CoutU & "</td>
    <td width=340><font size=2><b>Délai d'approvisionnement :</b></font><br>" & DelaiA& "</td>
    <tr><td width=340><font size=2><b>Consommation mensuelle moyenne actuelle :</b></font><br> " & consoM & "</td>
    <td width=340></td></tr><tr><td colspan=2 width=682><font size=2><b><font color=red>Soit :</font>consommation mensuelle moyenne à prévoir (exprimée dans l'unité de mesure standard PSFT) :<br>
    <input name='Conso_Mens_APrev' size=20 maxlength=30>" & rs("Unite") & "<br>"
    C'est peut être normal etant donné que l'on met du code html dans une balise vbscript ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Erreur
    Peux tu donner l'erreur, le message affiché ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Points : 61
    Points
    61
    Par défaut
    Non en fait c'était un problème de syntaxe que j'ai trouvé mais le problème maintenant c'est quand je lance mon formulaire il ne se passe rien !!!

    Je rentre mon code article mais les autres champs reste vide !!!!

    Je sais pas si en modifiant mon code c'est bon :

    je reposte le code du formulaire :

    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
    <html>
    <head>
    <script>
    $("Code_Article").observe("change",RetourneInfo.bindAsEventListener(maSaisie,'div_information','Code_Article'));
     
     
    	RetourneInfo:function(e,container,Le_Applicatif)
    	{ 
    		new Ajax.Updater(container,'donneinfo.asp',{
    				method : 'post',
    				parameters: { 'Code_Article': $F(Le_Applicatif)}
    			});
    	},
    </script>
    <script type="text/javascript"src="prototype.js"></script>
    	<meta http-equiv="Content-Language" content="fr">
    	<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    	<title>Formulaire de saisie des AVK</title>
    	<base target="contenu">
    	<style>
    		<!-- div.Section1 {page:Section1;} -->
    	</style>
    </head>
    <body bgcolor="#EBEBE0" style="font-family: Arial; font-size: 12pt" text="#003366">
     
    <br>
     
    	<p align="center">
    		<font size="5">
    			<span style="background-color: #C0C0C0">Saisissez les informations sur votre Avis de Variation de Consommation (AVK)</span>
    		</font>
    	</p>
     
    	<p align="center">
    		<a href="Mode%20opératoire%20formulaire%20AVK.pdf">Accédez ici au mode opératoire AVK</a>
    	</p>
     
    	<br>
    	<form method="post" action="" target="_self" name="saisie_avk">
    	<table align="center" cellpadding="5" cellspacing="5" style="border-collapse: collapse" bordercolor="#111111">
    			<tr>
    		     	<td width="340">
    					<font size="2"><b>
    						<font color="red">*</font>
    		      			Code article (8 caractères) :
    		     		</b></font>
    					<br>
    					<input name="Code_Article" id="code_article"size=8 maxlength=8>
    					<br>
    				</td>
    				<td width="340">
    					<font size="2"><b>
    						Désignation :
    					</b></font>
    					<br>
    				</td>
    			</tr>
    			<td width="340">
    					<font size="2"><b>
    						Prix unitaire : 
    					</b></font>
    					<br>
    				</td>
    			<td width="340">
    					<font size="2"><b>
    					Délai d'approvisionnement :
    					</b></font>
    					<br>
    				</td>
    			<tr>
    		     	<td width="340">
    					<font size="2"><b>
    						Consommation mensuelle moyenne actuelle :
    					</b></font>
    					<br>
    				</td>
    		     	<td width="340">
    		     	</td>
    			</tr>
    			<tr>
    		     	<td colspan="2" width="682">
    					<font size="2"><b>
    						<font color="red">Soit :</font>
    		      			consommation mensuelle moyenne à prévoir (exprimée dans l'unité de mesure standard PSFT) :
    					</b></font>
    					<br>
    		     		<input name="Conso_Mens_APrev" size=20 maxlength=30>
    				</td>
    				</tr>
    	</Form>
    </body>
    </html>

    fichier asp

    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
    <!-- #include file="Connexion_SQL.asp"-->
    <%
    ' sélectionne les informations relatives à notre article renseigné dans le formulaire AVK 
    dim Cstd ,Cpmp,CpmpD,Gart,KvM,KV,DLERP,DAPP,Conso, coutU , DelaiA  'variable qui stocke le données selon les différentes cas
    code= request.FORM("Code_Article")
    sql="select b.Description, b.[Coût STd], b.[Coût PMP], b.[Coût PMP déporté],a.[Groupe_art],a.[Unite],b.[Kv modifiée],b.[Kv],b.[Delai LREP (j)],b.[Delai d appro (j)]" & _
    "from T_EXTR_BASAMONT b,T_CALCUL_ARTICLE_AMONT a " & _
    "where A.ARTICLE = b.code_article and  b.code_article ='" & code & "'"
    set rs=conn.execute(sql)
     do while not rs.EOF
    Cstd=rs("Coût STd")
    Cpmp=rs("Coût PMP")
    CpmpD=rs("Coût PMP déporté"°
    Gart=rs("Groupe_art")
    KvM=rs("Kv modifiée")
    KV=rs("KV")
    DLERP=rs("Delai LREP (j)")
    DAPP=rs("Delai d appro (j)")
    If Gart="MRPRM" or Gart="MRPRMD" then 
    coutU=Cstd
    elseif CpmpD<>"" or CpmpD<>999999 then
    coutU = CpmpD
    else coutU=Cpmp
    end if
    If rs("Kv modifiée")<>"" then
    ConsoM = rs("Kv modifiée")
    Else 
    ConsoM = rs("Kv")
    End If 
    If rs("Delai LREP (j)")<>"" then
    DelaiA = rs("Delai LREP (j)") 
    Else DelaiA=rs("Delai d appro (j)")
    End If
        monRetourHTML = "<td width=340><font size=2><b>Désignation :</b></font><br>" & rs("description") & "</td><td width=340><font size=2><b>Prix unitaire : </b></font><br>" & CoutU & "</td>"
     
            rs.movenext
    Loop
    Set rs=Nothing
    Response.Write monRetourHTML
    %>

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    tu peux déjà essayer ceci, tu vas tester ton asp pour voir s'il te retourne quelque chose (response.write)

    http://.. donneinfo.asp?code_article=99

    99 une valeur de code article connue

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Points : 61
    Points
    61
    Par défaut
    Salut

    j'ai testé et il me retourne un résultat donc sa doit pas venir de cette page !

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Div_information
    Bonjour,

    Dans ton appel à l'ajax tu spécifies que ta réponse prendra lieu et place de div_information, il te faut donc la déclarer dans ta page HTML appelante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <table>
      <tr>
        <div id="div_information">
            <td> ...
     
            </td>
       </div>
      </tr>
    </table>
    dans ton fichier asp, tu as construit le <td> ...</td> qui prendra la place.

    Bonne journée

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Points : 61
    Points
    61
    Par défaut
    Merci,

    je me disais bien qu'il fallait créer une div dans mon formulaire.

    Merci pour tout ca fonctionne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traitement d'un formulaire dans la base
    Par MInfo25 dans le forum jQuery
    Réponses: 1
    Dernier message: 26/11/2014, 23h38
  2. Traitement sur les enregistrements dans un formulaire caché
    Par GuyDuLac dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/06/2013, 12h20
  3. [AC-2007] Traitement de Données dans un formulaire
    Par mamaru dans le forum IHM
    Réponses: 1
    Dernier message: 12/03/2013, 20h59
  4. [MySQL] Traitement apostrophe dans zone formulaire de type Text
    Par dfournier dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/11/2006, 16h14
  5. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52

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