Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
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 08/09/2007, 16h59   #1
Membre confirmé
 
Avatar de zemeilleurofgreg
 
Inscription : mars 2006
Messages : 469
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2006
Messages : 469
Points : 271
Points : 271
Par défaut Utiliser bouton pour fonction ASP

Bonjour à tous,

j'ai un petit problème de débutant.

J'ai un fichier .asp dans lequel il y a une procédure qui établit la connection avec la DB Access. Et dans un autre fichier (.html), j'ai un "include" qui fait le lien avec le fichier .asp.

Je voudrais simplement appeler la procedure qui insert les données dans la DB lors du clique sur un bouton. Mais je sais pas comment faire pour appeler du code ASP dans une balise HTML.

voici mon fichier "Connection.asp"

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
<%
 
' Déclarations des variables utilisées tout au long du script :
 
Dim conn   ' object connexion
Dim Comm
 
' Connexion à la base :
 
Sub Connexion()
 
   Set conn = Server.CreateObject("ADODB.Connection")
   Set Comm = Server.CreateObject("ADODB.Command")
   conn.open "driver={Microsoft Access driver (*.mdb)};dbq=C:\Inetpub\wwwroot\DB\db1.mdb"
   Comm.ActiveConnection = conn
 
end sub
 
Sub AddRecord(sReq)
 
   If sreq <> "" then
      Dim maRequete
      maRequete = "insert into Table1 (champ2) values('" & sReq & "')"
      Connexion()
      Comm.CommandText=maRequete
      Comm.Execute
      Deconnexion()
   else
      response.write("<b>Erreur E001 : Exécution d'une requête</b><br>")
      response.write("Le paramètre envoyé est vide.<br>")
   end if
 
End Sub
 
Sub Deconnexion()
 
   Set Comm = Nothing
   Set conn = Nothing
 
End Sub
%>
et voici mon fichier .html

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- #include file="Connection.asp"--> 
 
<html>
<head>
</head>
<title>Formulaire</title>
<body>
 
<form name="form" method="post" action="">
<p>	
 
    <input type="text" name="textfield">
    <BUTTON ID="add" TITLE="Ajouter" ONCLICK=AddRecord(textfield)>Ajouter</BUTTON>
</p>
</form>
</body>
</html>
merci de bien vouloir m'aider.
zemeilleurofgreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2007, 15h51   #2
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

il te suffit de faire ceci :
Code asp :
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
 
Response.write "<html>"
Response.write "<head>"
Response.write "</head>"
Response.write "<title>Formulaire</title>"
Response.write "<body>"
   enreg request.form("Enreg"), request.form("var")
Response.write "<form name=""form"" method=""post"" action=""connexion.asp"">"
Response.write "<p>"
 'Mettre les données que dois envoyer le formulaire ici
Response.write "<input type=""submit"" name=""Enreg"" value=""Enregistrer"" />"
Response.write "</p>"
Response.write "</form>"
Response.write "</body>"
Response.write "</html>"
 
function enreg(strval, req)
if strval= <>"" then
'ouverture bd
DSN_BASE = "DBQ=" & Request.ServerVariables("APPL_PHYSICAL_PATH") & "DB\db1.mdb" & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"
 
'Création de la connection et du recordset
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DSN_BASE
Set RS = Server.CreateObject("ADODB.Recordset")
 
Sql = "insert into Table1 (champ2) values('" & req & "')"
Rs.open Sql, conn
 
Response.write "Enregistrement terminé"
 
'fermeture bd
Set RS = Nothing
Conn.Close
Set Conn = Nothing
end if
end function
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 16h47   #3
Membre confirmé
 
Avatar de zemeilleurofgreg
 
Inscription : mars 2006
Messages : 469
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2006
Messages : 469
Points : 271
Points : 271
Salut Kaiser59 !!

Merci de ta réponse mais je comprend pas grand chose.

Dans mon fichier "connexion.asp" j'ai une fonction "AddRecord()" qui comme son nom l'indique, ajoute un enregistrement dans la DB. Je veux appeler à partir du fichier "Formulaire.html" cette fonction "AddRecord()".

Je sais même pas si c'est possible

Encore merci pour ton aide.
zemeilleurofgreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 17h35   #4
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Dans ce cas tu n'as pas vraiment besoin d'une fonction On utilise une fonction en générale, arrêté moi si je me trompe , quand tu as besoin de faire répéter le programme pls fois or ce n'est pas le cas ici.

tu as ta page formulaire qui envoie les valeurs dans la page asp et dans la page asp tu affiches un message de confirmation de l'enregistrement

Exemple :
formulaire.htm
Code html :
1
2
3
4
<form action="reception.asp" method="post">
 <!-- Mettre ce que tu as besoin d envoyer dans le formulaire -->
 <input type="submit" value="Enregistrez" />
</form>

puis dans reception.asp
Code asp :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'connexion bd
'recordset
'requete sql pour vérifier que l'enregistrement n'a pas une similitude avec un un enregistrement existant dans la table
 
  'pas de similitude
  if rs.eof then
    'recordset
    'requete qui permet d'enregistrer
    response.write "Enregistrement terminé avec succès"
  else
    'enregistrement existant
    response.write "le nom indiqué existe déjà dans la base"
  end if
 
'fermeture bd
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 19h40   #5
Membre confirmé
 
Avatar de zemeilleurofgreg
 
Inscription : mars 2006
Messages : 469
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2006
Messages : 469
Points : 271
Points : 271
Ahhhhhhh !! Ok, je commence à comprendre tout doucement

Citation:
<!-- Mettre ce que tu as besoin d envoyer dans le formulaire -->
quelle est la syntaxe que je dois utiliser ?

Et dans la page ASP, comment je récupère la valeur du champ texte pour faire ma requete SQL ?

Je sais je sais, je suis nul
zemeilleurofgreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 21h28   #6
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Voici un petit exemple qui devrait t'aider à comprendre :

formulaire.htm
Code html :
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
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Fiche Contact</title>
<style type="text/css">
<!--
label {float: left;width:500px;text-align:right;padding-right:.3em;}
 
p 
{
 margin: 10px auto 10px auto;
 text-align: left;
 font-size: 1.2em;
 font-weight: bold;
 font-family: Serif,Verdana, Arial, Sans-serif;
 font-style:italic;
 width:1000px;
 padding:.4em;
}
-->
</style>
</head>
<body>
 
<form action="reception.asp" method="post">
 <p><label>Nom : </label><input type="text" name="nom" size="15" /></p>
 <p><label>Prénom : </label><input type="text" name="prenom" size="15" /></p>
 <p><label>Adresse : </label><textarea name="adresse" cols="30" rows="4"></textarea></p>
 <p><label>Code postal : </label><input type="text" name="cp" size="7" maxlength="5" /></p>
<p><label><input type="submit" value="Enregistrer" /></label></p>
</form>

reception.asp
Code asp :
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
'ouverture bd
DSN_BASE = "DBQ=" & Request.ServerVariables("APPL_PHYSICAL_PATH") & "bd.mdb" & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"
 
'recordset
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DSN_BASE
Set RS = Server.CreateObject("ADODB.Recordset")
 
'requete sql pour vérifier la presence d'un enregistrement existant :
Sql = "Select Nom, Prenom From Table1 where Nom = '"& Request.form("nom") &"' AND Prenom = '"& Request.form("Prenom") &"'"
rs.open Sql, conn
 
   'Champ similiaire :
   if not rs.eof then
    response.write Request.form("nom") &" "& Request.form("prenom") &" est déjà présent(e) dans la base"
   else 'pas de similitude
     Set Conn = Server.CreateObject("ADODB.Connection")
     Conn.Open DSN_BASE
     Set RS = Server.CreateObject("ADODB.Recordset")
 
     Sql2 = "Insert into Table1 (Nom, Prenom, Adresse, CP) values ('"& Request.form("nom") &"','"& Request.form("prenom") &"','"& Request.form("adresse") &"',"& Request.form("cp") &")"
     rs.open Sql2, Conn
 
     response.write "<p>Enregistrement terminée avec succès<br/><a href=""index.asp"" >Revenir à l'accueil</a></p>"
  end if
 
'fermeture bd
Set RS = Nothing
Conn.Close
Set Conn = Nothing
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 06h44   #7
Membre confirmé
 
Avatar de zemeilleurofgreg
 
Inscription : mars 2006
Messages : 469
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2006
Messages : 469
Points : 271
Points : 271
Citation:
Voici un petit exemple qui devrait t'aider à comprendre :
Salut Kaiser59 !!

Effectivement, ça m'aide beaucoup à comprendre !
En fait ce que l'on envoie à la page ASP c'est le formulaire complet et pas seulement un champ en particulier ?

Super

Je test tout ça quand je rentre.
Merci beaucoup

@+
zemeilleurofgreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 11h58   #8
Membre confirmé
 
Avatar de zemeilleurofgreg
 
Inscription : mars 2006
Messages : 469
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2006
Messages : 469
Points : 271
Points : 271
Génial, ça marche et en plus j'ai compris !!


Encore merci !

@+
zemeilleurofgreg est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h50.


 
 
 
 
Partenaires

Hébergement Web