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

JavaScript Discussion :

[AJAX] Insertion de donn�es (formulaire) dans une base Access : ASP JavaScript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Par d�faut [AJAX] Insertion de donn�es (formulaire) dans une base Access : ASP JavaScript
    Salut,

    J'ai r�cemment appris les langage ASP et Javascript et je cherche � entrer des informations saisies par formulaire dans une base de donn�es Access...

    Je me suis pas mal promener sur le web mais je dois avouer que je frole l'overdose d' "incompr�hension g�n�rale" vue que je commence � m'emmeler les m�ninges dans tous les sens.

    Mon probl�me est donc le suivant :

    fichier "ajouter_deplacement.ASP"

    1 champ text de saisie - 1 <div> contenant une r�f�rence "txtHint"
    1 boutton "Valider" avec un onClick -> function ValidForm

    ValiForm :

    1- V�rification que le champ text est non vide
    2- V�rification du BROWSER
    3- Envoi d'une requete au serveur (Je n'ai pas trop compris � quoi corresponde les param�tres : RequestHeader et ce que je vasi envoyer au serveur avec Send)
    4- Controle du State
    5- Envoi

    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
     <html>
    <head>
        <title>Acquisition de donnees </title>
    	<link rel="stylesheet" type="text/css" href="style2.css" />
    </head>
     
    <body>
     
    <div id="content">
    <form name="form_deplacement" action="" method="post">
    	<div class="AttachedForm"> Ajout d'un deplacement dans la base de donnees </div>
    		<div class="PositionForm">
    			<table>
    			<tr>
    			<td class="LabelForm"> <label for="nom_deplacement">Type de deplacement</label>: </td>
    			<td class="TextForm"> <input type="text" id="nom_deplacement" name="nom_deplacement"/></td>
    			<td class="AdviceForm"><div id="txtHint"></div></td>
    			</tr>
    			</table>
    		</div>
    	<div>
    			<input type="button" value="Valider" onClick="ValidForm(this.form_deplacement)"/>
    			<input type="reset" value="Retablir"/>
    	</div>
    </form>
     
     
    <script type="text/javascript">
     
    // Fonction d'insertion des données dans la base données
     
    function ValidForm(form){
    	if (form.length==0){ 
    		document.getElementById("txtHint").innerHTML="Champ Obligatoire !";
      		return;
      		}
      	else{	
    	xmlHttp=GetXmlHttpObject();
    	xmlHttp.open("post","/RequestASP.asp",true);
    	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    	xmlHttp.onreadystatechange = stateChanged;
    	xmlHttp.send("nom_deplacement="getElementById("nom_deplacement"));
    		}
    	}
     
    // Fonction de test du BROWSER
     
    function GetXmlHttpObject() {
    	var xmlHttp = null;
    	try { 
    		xmlHttp = new XMLHttpRequest(); }		// Firefox, Opera 8.0+, Safari
    	catch (e) {
    		try {
    	    	xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }		// Internet Explorer 6.0+
    	  catch (e) {
    	    try {
    	      	xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }		// Internet Explorer 5.5+
    	      catch (e) {
    	      	alert("Votre Explorateur Internet ne supporte pas la technologie AJAX !"); }
    	    }
    	  }
    	return xmlHttp;
    	}
     
    // Fonction de test du transfert des données au serveur
     
    function stateChanged() { 
    	if (xmlHttp.readyState==4 && xmlHttp.status == 200) {
    		document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
    		}
    	}
     
    </script>
     
     
     
    </div>
     
    </body>
    </html>

    fichier "Request.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
    41
    42
    43
    44
    45
    46
    47
    48
     
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%option explicit %>
     
    <%
    Dim g_oConn
    Dim g_oRs
    Dim TempId
    Dim frm = Request.form
     
        Connect
        InsertData(Request.form)
        if TempId 
        Disconnect
     
     
     
    Sub Connect
        Set g_oConn = Server.CreateObject("ADODB.Connection")
        g_oConn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & Server.MapPath("base_test.mdb") & ";"
            On error resume next
            g_oConn.Open
            if g_oConn.State = 0 then
                Response.Write "La connexion à la base """ & Server.MapPath("base_test.mdb") & """ a échoué <br/>"
                Response.End        	
            End if
        On error goto 0
    End Sub
     
     
    Sub Disconnect
        If g_oConn.State = 1 then g_oConn.Close
        Set g_oConn = Nothing
    End Sub
     
     
    Sub InsertData(frm)
        Dim sql
     
    	    Set g_oRs = Server.CreateObject("ADODB.Recordset")
    	    sql = "INSERT INTO deplacements (nom_deplacement) VALUES ('" & frm("nom_deplacement") & "');"
        	g_oRs.Open sql, g_oConn, 3, 3
     
    		response.write("Le deplacement a été ajouté à la base !")
    End Sub
     
    Sub AfficheForm
        %>

    Si une ame charitable pouvait m'aider (en compr�hension : lien vers explications / en programmation)...

    Merci

  2. #2
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    Citation Envoy� par polothentik Voir le message
    Si une ame charitable pouvait m'aider (en compr�hension : lien vers explications / en programmation)...
    Il manque un point essentiel : quelle est la question ou le probl�me qui te bloque ?

    A+

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Par d�faut
    Effectivement,

    et bien ce dont je suis s�r :

    // Dans le fichier ajouter_deplacement.asp
    function GetXmlHttpObject()
    function stateChanged()

    //Dans le fichier RequestASP.asp
    La proc�dure pour entrer des donn�es dnas la base fonctionne !

    Ce dont je ne suis pas s�r :

    // Dans le fichier "ajouter_deplacement.asp"
    function ValidForm : Lorsque j'essaye de "valider" une donn�e, je ne comprend pas ce que fait la fonction !! J'ai essay� de mettre un document.write dans le if, dans le else, avant le if .... RIEN NE S'AFFICHE !!

    De meme, je ne sais pas si ma condition pour d�tecter les champ vide est juste... elle me semble correcte !!??

    Enfin, je ne suis absolument pas s�r de la conformit� de ma m�thode POST. J'ai pu voir sur Internet qu'il existe beaucoup de configurations diff�rentes pour setRequestHeader !!! Pourriez-vous m'en dire un peu plus ?

    Quant est-il de la 1�re ligne de code que l'on retrouve partout dans les fichiers (.asp) "response.expires=-1" ? Parfois, elle se retrouve sous la frome de plusieurs lignes ???

    Du coup, �a fait plein de questions et j'en suis d�sol� !!

    Merci pour tout (d'avance)

  4. #4
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    La fonction ValidForm() appelle via Akjax la page /RequestASP.asp en lui passant en param�tre "nom_deplacement="getElementById("nom_deplacement")
    Param�tre qui n'est pas bon : il manque le .value =>
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xmlHttp.send("nom_deplacement="getElementById("nom_deplacement").value);
    A r�ception de la r�ponse, elle lance stateChanged()
    De meme, je ne sais pas si ma condition pour d�tecter les champ vide est juste... elle me semble correcte !!??
    Non ! Elle teste le nombre de champ du formulaire (qui ne d�pend pas des saisies de l'utilisateur).
    Il faut que tu testes les champs individuellement (cf. la FAQ Javascript).
    Quant est-il de la 1�re ligne de code que l'on retrouve partout dans les fichiers (.asp) "response.expires=-1" ? Parfois, elle se retrouve sous la frome de plusieurs lignes ???
    Cela force la reg�n�ration de la page (emp�che l'utilisation du cache serveur).
    Personnellement, j'utilise
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    response.expires = -1
    response.AddHeader "Pragma", "no-cache"
    response.AddHeader "cache-control", "no-store"
    A+

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Par d�faut
    Merci pour la rapidit� de ta r�ponse !!

    Je me pose une question toute bete : "Est-ce qu'il faut d�clarer quelque chose en en-t�te de page ??

    J'utilise <script type="text/javascript"> --- </script> pour tout ce que j'�cris en javascript !!

    je ne comprend pas pourquoi onClick il ne veut pas �xecuter ma fonction ValidForm !!

    Je cherche...

  6. #6
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par polothentik Voir le message
    je ne comprend pas pourquoi onClick il ne veut pas �xecuter ma fonction ValidForm !!
    Je pense qu'elle s'ex�cute !
    Pour t'en convaincre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function ValidForm(form){
    alert('Et oui !');
    	if (form.length==0){ 
    ...
    Mais comme le passage de param�tre n'est pas bon (est en cas de bugg serveur, m�me s'il l'est), soit la r�ponse n'arrive jamais, soit elle n'a aucun effet.

    A+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. insertion des donn�es checkbox dans une base de donn�es
    Par WIN76 dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 23/01/2017, 17h28
  2. R�ponses: 17
    Dernier message: 11/10/2013, 09h57
  3. Insertion des donn�es Excel dans une base SQL-Server
    Par cedy-kassy dans le forum MS SQL Server
    R�ponses: 5
    Dernier message: 15/03/2012, 11h11
  4. [MySQL] insertion de donn�es csv dans une base de donn�es
    Par angelina88 dans le forum PHP & Base de donn�es
    R�ponses: 10
    Dernier message: 12/12/2011, 00h57
  5. Ins�rer des donn�es Excel dans une base Access ?
    Par MaTHieU_ dans le forum Access
    R�ponses: 3
    Dernier message: 22/06/2005, 15h11

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