Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
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 02/05/2008, 12h43   #1
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
Par défaut [Prototype] Envoi de requete et reaffichage du DIV( System de vote)

Bonjour,

Je cherche un faire un system de vote avec du javascript/ajax un peu comme ce site

Désolé pour l'exemple de site mais pour prendre exemple sur ce site : http://www.viedemerde.fr/

Quand on clique sur "tu l'as bien mérité" en dessous de chaque texte , Sa envoi une requête SQL je pense pour incrémenter le compteur et sa affiche la nouvelle valeur.

Pouvez vous m'expliquer comment faire cela ? ou un tutorial ?

Merci
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 14h12   #2
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
Alors j'ai trouvé ceci

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
function exemple()
{
obj = document.getElementById("resultat");
 
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
// On appele la page avec l'id en GET
xhr_object.open("GET", "/test.php?valeur=XXXXXXX", true);
xhr_object.send(null);
 
obj.innerHTML += "OK (On affiche le compteur aprés la requete SQL)";
 
}
</script>
<a href="javascript:exemple()">Hop, on essaye !</a>
<div id="resultat"></div>
Cependant je ne sais pas comment faire pour récuperer la valeur javascript:exemple(78)" et le mettre a la place de tout les XXXXX ici
xhr_object.open("GET", "/test.php?valeur=XXXXXXX", true);

Si je comprend bien tout j'ai qu'a mettre ma requete SQL dans la page test.php afin que la requete se fasse. Mais comment faire pour que
obj.innerHTML += "OK (On affiche le compteur aprés la requete SQL)";

Affiche "OK, 41 votes" par exemples ?

Merci
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 14h45   #3
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Ben il suffit de déclarer un nom de variable dans le prototype de ta fonction exemple et de l'utiliser ensuite :
Code :
1
2
3
4
5
6
function exemple(mavariable)
{
    ...
    xhr_object.open("GET", "/test.php?valeur=" + mavariable, true);
    ...
}
Et donc oui, tu codes ta requête SQL dans test.php. Ensuite, dans ce test.php, tu renvoies juste le nombre de votes que tu récupères ainsi :
Code :
obj.innerHTML += "OK, " + xhr_object.responseText + " votes";
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 15h16   #4
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
ca marche merci

cependant je comprend pas le "+ xhr_object.responseText " dans ma requete j'ai fait un count ... je sais pas trops si c sa qu'il falais faire ?

Code :
1
2
	$db=@mysql_query('SELECT count(id) FROM test');
	$nb=@mysql_result($db,0,'count(id)');
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 15h26   #5
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Oui : dans test.php, tu fais juste un echo $nb pour renvoyer le résultat du count au navigateur. Ensuite, tu récupères ce résultat dans xhr_object.responseText. Les +, c'est pour concaténer les différentes chaînes de caractères.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 15h44   #6
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
Ok

J'ai fait ceci mais sa ne marche pas

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
include 'config.php';
 
if ($_GET['valeur'] == TRUE) {
 
$result = mysql_query("UPDATE test SET toto = 'ok' WHERE id = '$_GET[valeur]' ");
 
	$db=@mysql_query('SELECT count(id) FROM test');
	$nb=@mysql_result($db,0,'count(id)');
 
echo $nb;
}
 
?>
Code :
obj.innerHTML += "OK, " + xhr_object.responseText + " votes";
J'ai du oublier quelque chose
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 15h58   #7
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
C'est-à-dire ? Qu'est-ce que tu obtiens ? Essaie juste avec $nb=@mysql_result($db,0);. N'oublie pas de faire un close de la connexion.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 16h05   #8
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
Salut,

Je n'obtins aucun résultats, la requête fonctionne bien l'UPDATE est Ok mais aprés l'affichage du résultat aucun résultats...
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 16h10   #9
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Essaie d'appeler test.php directement depuis ton navigateur : http://tonserveur/test.php?valeur=18 : ça affiche quoi ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 16h29   #10
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
sa m'affiche bien "2" qui correspond a la requete mise

c'est étrange
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 17h18   #11
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Non, c'est bien. Mets un alert(xhr_object.responseText); avant la ligne obj.innerHTML += "OK, " + xhr_object.responseText + " votes" pour voir si ton navigateur récupère bien l'info.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 17h57   #12
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
Voila je viens de le faire , il y a aucune données dans la boite alert qui s'affiche ... la boite est vide
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 20h58   #13
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Donc soit y a un problème à l'appel de test.php, soit y a un problème avec le .responseText. Pour le premier truc, c'est facile à vérifier : tu cliques sur ton bouton et si en faisant un select manuellement ou en appelant directement test.php tu vois le nombre augmenter, c'est que l'appel se fait bien, et qu'alors le pb est avec .responseText.

J'ai sorti le .responseText un peu au hasard, c'est possible que ce ne soit pas la bonne propriété.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 00h26   #14
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 144
Points : 11
Points : 11
Ca na pas l'air de marchais sa viendrai bien de responsetext ...
fabien14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 19h10   #15
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Plutôt étrange. Tu peux redonner ton code HTML + Ajax complet pour que je puisse tester ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h25.


 
 
 
 
Partenaires

Hébergement Web