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] Perdu dans Ajax (SQL+ASP)


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [AJAX] Perdu dans Ajax (SQL+ASP)
    Bonjour à tous,


    découvrant Ajax et après avoir fouillé sur les nombreux tuto qu'offre le net, je me retrouve avec des bouts de codes qui ne ressemblent à rien sauf à un gros "schmilblik"...


    On est où :

    J'ai développé un moteur de recherche intranet et j'ai incorporé un log des recherches effectuées (en SQL).

    Dans le dit journal j'ai rajouté un champ LSHOK qui est par défaut à 0.
    Ce champ correspond à la satisfaction de l'utilisateur par rapport aux résultats affichés suite à sa recherche.
    LSHOK passe à 1 ou 2 selon si il est satisfait ou insatisfait.




    Voici le code qui me permet d'alimenter le log lorsqu'une recherche est faite :

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	'Requetes
    sql = 	"INSERT INTO action.dbo.LOGSEARCH (LSHUSEID, LSHDATE, LSHSEARCH, LSHNBRESULT, LSHOK)" & vbnewline
    sql = sql & "VALUES ("&  sqlcharf(GetLoggedUserId()) &","& sqlcharf(now()) &","& sqlcharf(affichage) &","& sqlcharf(iCptResult) &", 0);" & vbnewline
    	'				userid	 		 Date + heure		Mots recherchés		Nombre résultat	LSHOK
     
    	set rs = conn.execute (sql)


    Grace au sondage, LSHOK passe donc à 1 ou 2 pour pouvoir apprécier la satisfaction des utilisateurs.

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	'MAJ pour log moteur de recherche
    	if request("satisfaction" = "checkoui") then
    		set rs1 = conn.execute (sql1)
    	end if
     
    	if request("satisfaction" = "checknon") then
    		set rs1 = conn.execute (sql2)
    	end if

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <div id="blocbouton">
    	<h5> Êtes-vous satisfait du résultat de votre recherche ? </h5>
    	 <p><input type=radio name=satisfaction value="checkoui" onclick="javascript:CacheToi()";"submitForm()"> oui, je suis satisfait</p>                     
    	 <p><input type=radio name=satisfaction value="checknon" onclick="javascript:CacheToi()";"submitForm()"> non, je ne suis pas satisfait</p>
     
     </div>
    (La fonction CacheToi() est pour cacher le sondage une fois le vote effectué)

    Mon soucis :

    Comme vous pouvez le voir dans le code ci-dessus, je pensais executer une requête SQL UPDATE pour mettre à jour le log.

    Mais on m'a demandé d'employer AJAX avec (je vais être vague) :
    "un truc comme" open("GET",page.asp?cle1&cle2)
    qui me servirai à mettre à jour mon log SQL...

    J'ai donc récupéré les deux clés (userid et la date/heure) et les ai mis dans deux variables ASP (cf : cle1 et cle2)


    Mais je suis perdu, je ne comprend pas ce que j'ai à faire, mettre en place, la structure et même le cheminement jusqu'au log SQL...

    Je ne demande pas qu'on me mache le travail, mais juste un peu d'aide pour trouver une piste qui me permettrai d'avancer dans mon projet.


    Merci beaucoup d'avoir pris le temps de vous être penchés sur mon cas et pour les réponses futures !

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    C'est bon ! ^^


    Je donne le résultat de mon travail, dès fois qu'on ai essayé de comprendre où je voulais en venir dans le premier post :



    La page appelée :
    Code asp : 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
     
    <%
    Option Explicit
    	response.ContentType="text/xml"
    	response.Charset="utf-8"
    %><?xml version="1.0" encoding="UTF-8" ?>
    <options>
    <%
    %><!--#include file="../stats.v2/lib/functions.asp"-->
    <!--#include virtual="/include/common.inc"-->
     
     <%
    'Création connexion SQL
    dim conn, sql, rs 'Connexion a la base
    dim rs1 'Résultat
    Dim rqkey1 'Pour MAJ log identifiant
    Dim rqkey2 'Pour MAJ log date&heure
    Dim rqValue
    rqkey1 = request("cle1")
    rqkey2 = request("cle2")
    rqValue = request("value")
     
    set conn = server.createObject("ADODB.Connection")
     
    conn.commandTimeout = 1800 
     
    'Ouverture de la connexion
    conn.open "PROVIDER=MSDASQL; DRIVER={SQL Server}; SERVER=frbous024; DATABASE=Action; UID=action; PWD=action"
     
    'Requetes
    sql = "UPDATE action.dbo.LOGSEARCH SET LSHOK = " & sqlcharf(rqValue) & " WHERE LSHUSEID =" & sqlcharf(rqkey1) & " AND LSHDATE =" & sqlcharf(rqkey2) &";" & vbnewline
     
    ' sql2 = "UPDATE action.dbo.LOGSEARCH SET LSHOK = 2 'WHERE LSHUSEID =" & sqlcharf(cle1) & " LSHDATE =" & sqlcharf(cle2) &";" & vbnewline
     
    conn.execute sql
     
    'Fermer la connexion
    conn.close
    set conn=nothing
    %>
    <sql><% = sql %></sql>
    </options>



    Code asp : 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
     
    			function getXMLHTTP(){
    			  var xhr=null;
    			  if(window.XMLHttpRequest) // Firefox et autres
    			  xhr = new XMLHttpRequest();
    			  else if(window.ActiveXObject){ // Internet Explorer
    			    try {
    			      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			    } catch (e) {
    			      try {
    			        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			      } catch (e1) {
    			        xhr = null;
    			      }
    			    }
    			  }
    			  else { // XMLHttpRequest non supporté par le navigateur
    			    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    			  }
    			  return xhr;
    			}
     
     
     
    			function submitForm(cle1, cle2, value) {
    				var _xmlHTTP = getXMLHTTP();
    				if (_xmlHTTP){
    			    _xmlHTTP.open("GET","MAJLogSearch.asp?cle1="+cle1+"&cle2="+cle2+"&value="+value,true);
    			    _xmlHTTP.onreadystatechange=function() {
    			      if(_xmlHTTP.readyState==4&&_xmlHTTP.responseXML) {
    			        document.getElementById("contenu").innerText=_xmlHTTP.responseText;
    			      }
    			    };
    			    // envoi de la requête
    			    _xmlHTTP.send(null);				
    				cachetoi();
    				document.getElementById("contenu").innerText="Mise à jour en cours...";
    				} else {
    					alert('ça a pas marché !');
    				}
    			}
    			function cachetoi() {
    				document.getElementById("blocbouton").style.visibility = "hidden";
    			}

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		<form method="post" name="ajax" action="">
    		 <div id="blocbouton">
    			<h5> Êtes-vous satisfait du résultat de votre recherche ? </h5>
    			 <p><input type=radio name=satisfaction value="checkoui" onclick="submitForm('<% = cle1 %>', '<% = cle2 %>', 1)"> oui, je suis satisfait</p>                     
    			 <p><input type=radio name=satisfaction value="checknon" onclick="submitForm('<% = cle1 %>', '<% = cle2 %>', 2)"> non, je ne suis pas satisfait</p>
     
    		 </div>
    		</form>
    			<pre style ="visibility: hidden;" id="contenu">
    			</pre>

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

Discussions similaires

  1. intégrer ajax dans une page asp
    Par tlili_info dans le forum ASP.NET Ajax
    Réponses: 1
    Dernier message: 29/09/2011, 13h05
  2. [AJAX] execution d'une requette sql dans ajax/fich.php
    Par Ontolingua dans le forum AJAX
    Réponses: 3
    Dernier message: 04/08/2009, 20h38
  3. Réponses: 7
    Dernier message: 13/01/2009, 17h11
  4. Remplacer des controles ajax dans un site ASP .net par des codes javascript
    Par Contact2012 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/09/2008, 13h50
  5. [AJAX] requete sql dans Ajax
    Par nadalator666 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/04/2007, 18h02

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