begin process at 2008 08 21 23:44:44
1 229 711 membres
519 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème AJAX (Javascript + ASP) : insertion dans une base Access [ Base de données / Access ] (polothentik)

Problème AJAX (Javascript + ASP) : insertion dans une base Access le 02/04/2008 14:56:57

polothentik

Bonjour,

Je souhaite entrer des données dans une base de données Access en utilisant la technologie AJAX (JavaScript + ASP)

html  ("ajouter_deplacement2.htm") : formulaire > onclick appel d'une fonction de validation du formulaire
js ("ajouter_deplacement3.js") : fonction "validForm" > xhr.open('post','ajouter_deplacement.asp','true');
asp ("ajouter_deplacement2.asp") : insertion dans la base de données

Le problème survient à la ligne xhr.onreadystatechange = reportStatus();

Je pense que l'erreur vient du fait que je ne sais pas traiter l'envoi de données avec la méthode post dans mon fichier "ajouter_deplacement2.asp" --- il n'est pas du tout fonctionnel --- il doit falloir modifier le request.form par les données envoyées par le xmlHttpRequest mais je ne sais pas comment !!

Merci de bien vouloir me donner un ptit coup main  (je ne suis pas sur de mes entetes DOCTYPE aussi !)


fichier "ajouter_deplacement2.htm" :

<!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="ajouter_deplacement2.css" />
 <script type="text/javascript" src="ajouter_deplacement2.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>

fichier "ajouter_deplacment2.js" :

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(); 
  xhr.open('post','ajouter_deplacement2.asp',true); 
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  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+
      }
    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_deplacement2.asp" :

<!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 frm = Request.form("nom_deplacement")
Dim sql = "INSERT INTO deplacements (nom_deplacement) VALUES ('" & frm & "');"

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


Set g_oRs = Server.CreateObject("ADODB.Recordset")
g_oRs.Open sql, g_oConn, 3, 3

'response.write("Le deplacement a été ajouté à la base !")


If g_oConn.State = 1 then g_oConn.Close
Set g_oConn = Nothing
%>



Classé sous : base, asp, ajouter, xhr, oconn

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS