Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
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 13/08/2008, 11h43   #1
Invité de passage
 
Inscription : mars 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 13
Points : 4
Points : 4
Par défaut 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 :
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 :
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 :
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 !
Gabyro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2008, 15h40   #2
Invité de passage
 
Inscription : mars 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 13
Points : 4
Points : 4
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 :
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 :
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 :
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>
Gabyro 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 05h05.


 
 
 
 
Partenaires

Hébergement Web