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

  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+

  7. #7
    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
    .... au fait : il faudrait passer toute ta partie <script type="text/javascript">...</script> dans le <head> de ta page ...

    A+

  8. #8
    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
    Mais il est bien l� le souci, c'est que j'y ai pens� � mettre un alert o� un document.write("blabla")... Mais....rien du tout !!

    Je cherche...

  9. #9
    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
    Mais il est bien l� le souci, c'est que j'y ai pens� � mettre un alert o� un document.write("blabla")... Mais....rien du tout !!
    Alors c'est que ton code JS a plant� avant l'appel (peut �tre au chargement de la page).
    Un message d'erreur ?
    Sont ils activ�s ?
    Les autres codes JS continuent � fonctionner ?

    A+

  10. #10
    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
    Si je place un document.write dans la partie <body> de la page (les fonctions en javascript �tant dans le <head>), il s'affiche parfaitement bien!

    Pas de message d'erreur lors du chargement de la page ou apr�s le button click (J'ai l'impression qu'il ne prend pas en compte mon onClick (onClick ou onclick ??))

    Merci

  11. #11
    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
    Pas de message d'erreur lors du chargement de la page ou apr�s le button click (J'ai l'impression qu'il ne prend pas en compte mon onClick (onClick ou onclick ??))
    onclick !!
    Contrairement � une vieille habitude, tout doit �tre en minuscule en ... HTML

    Un doute :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onclick="ValidForm(this.form)"
    ne fonctionnerait pas mieux ?

    A+

  12. #12
    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
    J'ai apport� toute les corrections que tu m'as pr�cis�es pr�c�demment :

    Code 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
    <form name="form" 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)"/>
    			<input type="reset" value="Retablir"/>
    	</div>
    </form>

    Code complet :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html>
    <head>
        <title>Acquisition de donnees </title>
    	<link rel="stylesheet" type="text/css" href="style2.css" />
    	<script type="text/javascript">
     
    // Fonction d'insertion des données dans la base données
    	function ValidForm(form){
    	alert('Et oui !');
    	if (document.getElementById('nom_deplacement').value == ""){
    		document.getElementById('txtHint').innerHTML='Ce champ est obligatoire !';
      		return false;
      		}
      	//return true;
     
     
    	var 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').value);
    		}
    	}
     
    // 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>
     
    </head>
     
    <body>
    <div id="content">
    <form name="form" 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)"/>
    			<input type="reset" value="Retablir"/>
    	</div>
    </form>
     
     
    </div>
     
    </body>
    </html>
    Je me permet de faire un up de ma question :"Y a t-il un ent�te sp�cifique � d�clarer pour que le navigateur (IE pour ma part) puisse lire le javascript ?"
    Je dirais que non vu que j'arrive � �crire du javascript dans la apge dans les balise <script>..

    Na gros Bobo les neurones

  13. #13
    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
    "Y a t-il un ent�te sp�cifique � d�clarer pour que le navigateur (IE pour ma part) puisse lire le javascript ?"
    Je dirais que non vu que j'arrive � �crire du javascript dans la apge dans les balise <script>..
    Ah oui, pardon

    Le doctype n'intervient directement que sur le code HTML (et css ?). Par contre, si ton html n'est pas consid�r� comme valide, du coup �a peut effectivement "influencer" le JS ...

    Le code JS doit �tre comment� en stric, d'ailleurs je crois
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    <!--
    code JS
    -->
    </script>
    Tu as essay� en transitionnal ?

    A+

  14. #14
    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
    J'ai essay� en strict <!-- et //-->
    Si transitional consiste � rajouter language="javascript", j'ai donc aussi essay�

    En me promenant sur Internet, j'ai vu pas mal de post sur le fait qu'il vaut mieux mettre le javascript dans un fichier annexe : ce que j'ai fait !

    Je maintient que mon gros souci vient du onclick...

    Quel DocType utilises-tu habituellement ?? Peux-tu me le poster stp ??

    Merci

  15. #15
    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
    J'ai essay� en strict <!-- et //-->
    Si transitional consiste � rajouter language="javascript", j'ai donc aussi essay�
    Non, �a consiste surtout � changer l'en-t�te DOCTYPE, et � respecter les normes de d�veloppement associ�es (cf. le W3C et son Validator)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    A+

  16. #16
    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 Appel de fonction javascript impossible !?!?!
    Salut,

    Tout d'abord, un grand merci � tous ceux qui jusqu'� lors se sont pench�s sur mon probl�me !

    Un petit r�capitulatif : L'objectif est de remplir un formulaire contenu dans une page "ajouter_deplacement.asp", � la validation d'un <input> de type "button" et via une commande "onclick", une fonction de validation du formulaire est appell�e. Celle-ci est contenu dans un fichier "test.js".

    Dans un 1er temps, cette fonction test si le champ "text" est rempli et renvoye un message d'erreur via une cible nomm�e "txtHint" s'il ne l'est pas.
    Dans un 2nd temps, cette fonction fait appel � une fonction permettant de tester le "BROWSER" de l'utilisateur puis envoye une requ�te au serveur de type "POST". Execution du code asp contenu dans le fichier "Request.asp" charg� d'ins�rer le contenu du champ "txt" dans une base de donn�es.

    Le probl�me survient lors de l'appel de la fonction de validation du formulaire "ValidForm(this.form)". Une commande "alert" a �t� rajout�e dans la fonction ValidForm (fichier "test.js") avant toutes condition mais ce message ne s'affiche pas !!!!

    Une commande javascript dans la page "ajouter_deplacement.asp" s'effectue parfaitement !!
    Le doctype de cette m�me page est de type transitionnal pour XHTML 1.0 !!
    Aucun message d'erreur ne s'affiche, seulement aucune execution de la fonction !!
    Il n'y a pas de doctype dans les fichiers "test.js" et "RequestASP.asp" (faut-il en mettre ?)

    Quelqu'un pourrait-il m'aider � r�soudre ce probl�me d'appel de la fonction "ValidForm" ? Si queuqu'un arrivait � faire fonctionner le lein entre les fichiers "ajouter_deplacement.asp" et "test.js" chez lui, je serais rassur� !! Je ne comprend pas d'o� vient l'erreur !

    Merci d'avance pour la lecture de ce post tout � fait indigeste !!

    fichier "ajouter_deplacement.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
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html>
    <head>
        <title>Acquisition de données </title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    	<link rel="stylesheet" type="text/css" href="style2.css" />
    	<script src="test.js" type="text/javascript">
    	</script>
    </head>
     
    <body>
    <div id="content">
    <form name="form" action="" method="post">
    	<div class="AttachedForm"> Ajout d'un déplacement dans la base de données </div>
    		<div class="PositionForm">
    			<table>
    			<tr>
    			<td class="LabelForm"> <label for="nom_deplacement">Type de déplacement</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)"/>
    			<input type="reset" value="Rétablir"/>
    			<script type="text/javascript">
    			<!--
    			alert("test");
    			//-->
    			</script>
    	</div>
    </form>
     
     
    </div>
     
    </body>
    </html>

    fichier "test.js"

    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
     
    // Fonction d'insertion des données dans la base données
    	function ValidForm(form) {
    	alert('Ca marche enfin !');
    	if (document.getElementById('nom_deplacement').value == "") {
    		document.getElementById('txtHint').innerHTML='Ce champ est obligatoire !';
      		return false;
      		}
      	//return true;
     
    	else {
    	var xhr = GetXmlHttpObject();
    	xhr.open('post','RequestASP.asp',true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.onreadystatechange = stateChanged;
    	xhr.send('nom_deplacement='getElementById('nom_deplacement').value);
    		}
    	}
     
    // Fonction de test du BROWSER
     
    function GetXmlHttpObject() {
    	var xhr = null;
    	try { 
    		xhr = new XMLHttpRequest(); }		// Firefox, Opera 8.0+, Safari
    	catch (e) {
    		try {
    	    	xhr = new ActiveXObject('Msxml2.XMLHTTP'); }		// Internet Explorer 6.0+
    	  catch (e) {
    	    try {
    	      	xhr = new ActiveXObject('Microsoft.XMLHTTP'); }		// Internet Explorer 5.5+
    	      catch (e) {
    	      	alert('Votre Explorateur Internet ne supporte pas la technologie AJAX !'); }
    	    }
    	  }
    	return xhr;
    	}
     
    // Fonction de test du transfert des données au serveur
     
    function stateChanged() { 
    	if (xhr.readyState==4 && xhr.status == 200) {
    		document.getElementById('txtHint').innerHTML = xhr.responseText;
    		}
    	}

    fichier "RequestASP.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
    49
    50
    51
    52
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%option explicit %>
     
    <%
    ' Regénération de la page (empêche l'utilisation du cache serveur)
    response.expires = -1
    response.AddHeader "Pragma", "no-cache"
    response.AddHeader "cache-control", "no-store"
     
    Dim g_oConn
    Dim g_oRs
    Dim TempId
    Dim frm = Request.form
     
        Connect
        InsertData(Request.form) 
        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
        %>

  17. #17
    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
    Salut,

    Je me permet de faire un petit UP de mon probl�me vu que je suis tout bloqu�....

    Merci d'avance pour un petit test de ma programmation !!

  18. #18
    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
    Salut,

    J'ai r�alis� plusieurs tests notamment celui de faire appel � la fonction GetXmlHttpObject() et d'essayer d'afficher le contenu de la variable xhr par un document.write(xhr) ...

    Il m'affiche le mot "undefined" !!

    Si quelqu'un � une explication ou m�me la solution ...

    Merci

    la page d'affichage "ajouter_deplacement.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
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html>
    <head>
        <title>Acquisition de données </title>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<link rel="stylesheet" type="text/css" href="style_ajouter_deplacement.css" />
    	<script type="text/javascript" src="JavaScript/test.js"></script>
    </head>
     
    <body>
    <div id="content">
    <p> Ajout d'un déplacement dans la base de données :</p>
    <form name="form" action="" method="post" class="PositionForm">
    	<table>
    		<tr>
    		<td class="LabelForm"> <label for="nom_deplacement">Type de déplacement</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>
    		<input type="button" value="Valider" onclick="validForm(this.form)"/>
    		<input type="reset" value="Rétablir"/>
    	</div>
    </form>
     
     
    </div>
     
    </body>
    </html>

    La page contenant les fonction JavaScript pour le test :

    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
     
    /* Fonction de validation du formulaire */
     
    function validForm(form) {
    	if (document.getElementById('nom_deplacement').value == "") {
    		document.getElementById('txtHint').innerHTML='Ce champ est obligatoire !';
      		return false;
      		}  	
    	else {
    		var xhr = GetXmlHttpObject();
    		//xhr.open('post','RequestASP.asp',true);
    		//xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		//xhr.onreadystatechange = stateChanged;
    		//xhr.send('nom_deplacement='getElementById('nom_deplacement').value);
    		return document.write(xhr);
    		}
    	}
     
     
     
    /* Fonction de test du BROWSER */
     
    function GetXmlHttpObject() {
    	var xhr = null;
    	try { 
    		xhr = new XMLHttpRequest();
    		}		// Firefox, Opera 8.0+, Safari
    	catch (e) {
    		try {
    	    	xhr = new ActiveXObject('Msxml2.XMLHTTP');
    	    	}		// Internet Explorer 6.0+
    		catch (e) {
    		    try {
    		      	xhr = new ActiveXObject('Microsoft.XMLHTTP');
    		      	}		// Internet Explorer 5.5+
    		    catch (e) {
    	      		alert('Votre Explorateur Internet ne supporte pas la technologie AJAX !');
    	      		}
    	    	}
    	  	}
    	return xhr;
    	}
     
     
     
    /* Fonction de test du transfert des données au serveur */
     
    function stateChanged() { 
    	if (xhr.readyState == 4 && xhr.status == 200) {
    		document.getElementById('txtHint').innerHTML = xhr.responseText;
    		}
    	}

  19. #19
    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
    Salut,

    Je poursuis dans mon monologue ! Je vais finir par le resoudre par moi m�me ce probl�me... h�h� !

    La situation s'est grandement am�lior�e... disons que j'ai pas mal d�bugg� le fichier "test.js". Ca ne marche toujours pas vous l'aurez bien compris, j'ai donc 2 questions !

    Apr�s une s�rie de test en bataille, je suis s�r de ma fonction validForm (la partie if fonctionne, l'ordre d'appel des fonctions dans la partie else est le m�me que tout ce que j'ai pu trouver sur Internet et les fonctions sont conformes � la m�thode POST)


    1ere question : Je ne comprend pas la formulation des donn�es que j'envoie... Cette formulation est-elle formalis�e ?? Comment vais-je devoir traiter les donn�es que j'envoie dans le fichier "RequestASP.asp" ?? C'est principalement le 'nom_deplacement=' qui me perturbe car pour moi il ne sert � rien !!

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var data = 'nom_deplacement=' + getElementById('nom_deplacement').value;
    [...]
    xhr.send(data);
    2�me question : Que doit contenir (ou comment doit �tre structur�) mon fichier "RequestASP.asp" pour recevoir les donn�es que je lui envoie sous la variable data?? L'objectif final est d'entrer des donn�es dans une Base De Donn�es !

    Merci d'avance pour toute vos r�ponse

    fichier "test.js" updated :

    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
    function validForm(form) {
    	if (document.getElementById('nom_deplacement').value == "") {
    		document.getElementById('txtHint').innerHTML = 'Ce champ est obligatoire !';
      		return false;
      		}
    	else {
    		var xhr = GetXmlHttpObject();
    		xhr.onreadystatechange = reportStatus();											//Fonction de suivi de l'état de la requête
    		xhr.open('post','ajouter_deplacement.asp',true);									//'post' : méthode / '***' : URL absolue ou relative de la page XML / true : pour asynchrone
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');			//Fonction appartenant à la méthode POST
    		var data = 'nom_deplacement=' + document.getElementById('nom_deplacement').value;
    		xhr.send(data);
    		}
    	}
     
     
    // Fonction de test du BROWSER
     
    function GetXmlHttpObject() {
    	var xhr = null;
    	try { 
    		xhr = new XMLHttpRequest();		// Firefox, Opera 8.0+, Safari
    		}
    	catch (err) {
    		try {
    	    	xhr = new ActiveXObject('Msxml2.XMLHTTP');		// Internet Explorer 6.0+
    	    	//var test = "xhr IE6";
    	    	//document.getElementById('txtHint').innerHTML = test.responseText;
    	    	}
    	  	catch (err) {
    	  		try {
    	      		xhr = new ActiveXObject('Microsoft.XMLHTTP');		// Internet Explorer 5.5+
    	      		}
    	      	catch (err) {
    	      		alert('Votre Explorateur Internet ne supporte pas la technologie AJAX !');
    	      		}
    	    	}
    		}
    	return xhr;
    	}
     
     
    // Fonction de test du transfert des données au serveur
     
    function reportStatus() { 
    	if (xhr.readyState == 4 && xhr.status == 200) {									//readyState --> 0 : uninitialized / 1 : Open / 2 : Sent / 3 : Receiving / 4 : Loaded
    		document.getElementById('txtHint').innerHTML = xhr.responseText;
    		}
    	}

    fichier ajouter_deplacement.asp" (inchang�) :

    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
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html>
    <head>
        <title>Acquisition de données </title>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<link rel="stylesheet" type="text/css" href="style_ajouter_deplacement.css" />
    	<script type="text/javascript" src="test.js"></script>
    </head>
     
    <body>
    <div id="content">
    <p> Ajout d'un déplacement dans la base de données :</p>
    <form name="form" action="" method="post" class="PositionForm">
    	<table>
    		<tr>
    		<td class="LabelForm"> <label for="nom_deplacement">Type de déplacement</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>	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    		<input type="button" value="Valider" onclick="validForm(this.form)"/>
    		<input type="reset" value="Rétablir"/>
    	</div>
    </form>
     
     
    </div>
     
    </body>
    </html>
    fichier "Request.ASP" (sans doute � modifier) :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%option explicit %>
     
    <%
    ' Regénération de la page (empêche l'utilisation du cache serveur)
    response.expires = -1
    response.AddHeader "Pragma", "no-cache"
    response.AddHeader "cache-control", "no-store"
     
    Dim g_oConn
    Dim g_oRs
    Dim TempId
    Dim frm = Request.form
     
        Connect
        InsertData(Request.form) 
        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
        %>

  20. #20
    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
    Salut,

    Est-ce qu'il vaut mieux programmer le fichier de connexion et d'insertion de donn�es dans la base de donn�es access en ASP ou PHP ?

    Le PHP semble plus facile � manier (et on le rencontre plus souvent que l'ASP sur le web dans les exmples)

    Help !

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

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