Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, 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 27/06/2011, 15h20   #1
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Par défaut desactiver evenement click apres un clic

Bonjour,
j'ai une instruction ajax, qui a l'aide d'un evenement Click lance une fonction.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$('.rate').click(function(){
	$.ajax({
		type: "GET",
		url: "loco/rate-product.php",
		dataType : 'json',
		data: "do=rate&product_id=" + some_product_id + "&rate="+$(this).text(),
		cache: false,
		async: false,
		success: function(result) {
			avg=result.avg;
			sum=result.count;
			$("#votes").html("Average:" + avg);
			$(".vote_count").html(sum + " vote(s)");
			$('.rate').rating('select',avg);
			$('input',this.form).rating('readOnly',true);
			//$('input',this.form).rating('disabled',true);
			//$('input',this.form).rating('return',false);
 
		},
		error: function() {
			alert("Error, please try again2");
		}
	});
});
J'ai un formulaire qui sert a faire une notation par étoile. Le but de cette manoeuvre est d'empecher les clics répétés.

Merci d'avance
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h24   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 114
Points : 45 114
soit tu mets un flag dans le data du bouton et tu le teste pioru lancer ou non l'ajax
soit tu bascule le style display à none

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$('.rate').click(function(){
	$.ajax({
		type: "GET",
		url: "loco/rate-product.php",
		dataType : 'json',
		data: "do=rate&product_id=" + some_product_id + "&rate="+$(this).text(),
		cache: false,
		async: false,
		success: function(result) {
			avg=result.avg;
			sum=result.count;
			$("#votes").html("Average:" + avg);
			$(".vote_count").html(sum + " vote(s)");
			$('.rate').rating('select',avg);
			$('input',this.form).rating('readOnly',true);
			//$('input',this.form).rating('disabled',true);
			//$('input',this.form).rating('return',false);
 
		},
		error: function() {
			alert("Error, please try again2");
		}
	}).css({'display':'none'});
});
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h51   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Code :
$('.rate').unbind('click');
devrait suffire
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h55   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 114
Points : 45 114
on peut réaxctiver après un unbind?,

vu que là il y a réessayer ... il rique d'avoir besoin du click plus tard non ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h05   #5
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Merci les gars, ca marche, ça me désactive bien les clics et les votes refonctionnent bien apres rafraîchissement de la page.
Merci encore
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h14   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Tiens, j'avais pas pensé à la méthode one() qui correspond encore mieux à ce que tu souhaites, notamment si tu as plusieurs votes sur la même page :
Code :
$('.rate').one('click', function(){...});
qui permet de ne lancer l'événement qu'une seule fois pour chaque élément de classe rate.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h19   #7
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
J'avais essayé mais le fait que mes boutons radio est le même nom mais pas la meme valeur, effectivement avec .one("click"... je ne pouvais plus re-cliquer sur la même valeur deux fois, mais je pouvais quand meme en selectionner une autre.
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 12h20   #8
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Par défaut ne fonctionne pas sous Internet explorer

Je vous remercie encore pour vos reponses, mais sous internet explorer, j'ai l'erreur Error, please try again1 qui s'affiche .
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 12h36   #9
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
Envoyé par thildouille
j'ai l'erreur Error, please try again1 qui s'affiche .
C'est bien, mais vu que ce message n'apparait nulle part dans le code que tu nous a montré, je vois mal comment on pourrait t'aider...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 12h39   #10
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Code :
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
$(document).ready(function() { 
 
var variable = location.search;     
var variable = location.search.substring(1,location.search.length); 
var variable = variable.substring(3); 
 
 
 
var some_product_id=variable; 
 
 
getRating(some_product_id); 
 
function getRating(id){ 
    $.ajax({ 
        type: "GET", 
        url: "loco/rate-product.php", 
        dataType : 'json', 
        processData: false, 
        data: "do=getRate&product_id=" + id, 
        cache: false, 
        async: false, 
        success: function(result) { 
            avg=result.avg; 
            sum=result.count; 
            $("#votes").html; 
            $(".vote_count").html(sum + " vote(s)"); 
            $('.rate').rating('select',avg); 
        }, 
        error: function() { 
            alert("Error, please try again1"); 
        } 
    }); 
} 
 
$('.rate').click(function(){ 
    $.ajax({ 
        type: "GET", 
        url: "loco/rate-product.php", 
        dataType : 'json', 
        data: "do=rate&product_id=" + some_product_id + "&rate="+$(this).text(), 
        cache: false, 
        async: false, 
        success: function(result) { 
            avg=result.avg; 
            sum=result.count; 
            $("#votes").html("Average:" + avg); 
            $(".vote_count").html(sum + " vote(s)"); 
            $('.rate').rating('select',avg); 
            $('input',this.form).rating('readOnly',true); 
            $('.rate').unbind('click'); 
 
        }, 
        error: function() { 
            alert("Error, please try again2"); 
        } 
    }); 
}); 
});
Voici mon php

Code php :
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
function getRate() {
	$sql= "select ifnull(round(sum(rate)/count(*),0),0) avg, count(*) count from rate where product_id=" . $_GET['product_id'];
	if($result=mysql_query($sql)) {
		if($row=mysql_fetch_array($result)) {
			$rate['avg'] = $row['avg'];
			$rate['count'] = $row['count'];
			echo json_encode($rate);
		}
	}
}
 
 
function rate() {
	$ip = $_SERVER["REMOTE_ADDR"];
 
	$product = $_GET['product_id'];
	$valideip = "SELECT * FROM  rate WHERE ip = '$ip' AND product_id = '$product' ";
 
	$sql = "insert into rate (product_id, rate, ip) values (" . $_GET['product_id'] . ", ".$_GET['rate'].",'$ip')";
 
	if($result=mysql_query($sql)) {
		getRate(); //call retrieve from getRate function
	}
}
 
 
 
if(!empty($_GET['do'])) {
	include 'config.php';
	include 'opendb.php';  //open database connection
 
	if($_GET['do']=='rate'){
		// do rate
		rate();
	}
	else if($_GET['do']=='getRate'){
		// get rating
		getRate();
	}
}
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 12h47   #11
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Code :
1
2
3
var variable = location.search;     
var variable = location.search.substring(1,location.search.length); 
var variable = variable.substring(3);


Tu déclares trois fois la même variable... chaque déclaration écrase la précédente.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 12h50   #12
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
j'ai mis un
et j'ai bien l'id qui s'affiche sous explorer.
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 13h28   #13
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
J'ai désactivé

Code :
1
2
3
//var variable = location.search;	
//var variable = location.search.substring(1,location.search.length);
//var variable = variable.substring(3);

et mis par exemple:

Code :
var some_product_id=121;
Mais j'ai toujours le message d'erreur.
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 18h13   #14
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
Envoyé par thildouille
Mais j'ai toujours le message d'erreur.
Ben dis-toi que le script n'arrive pas à joindre la page PHP
Tu es sûr de l'URL ?

Ceci dit, c'est quand même une bonne chose pour toi, ça évitera de vilaines injections SQL
Code php :
$sql= "select ifnull(round(sum(rate)/count(*),0),0) avg, count(*) count from rate where product_id=" . $_GET['product_id'];
Code php :
$sql = "insert into rate (product_id, rate, ip) values (" . $_GET['product_id'] . ", ".$_GET['rate'].",'$ip')";
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 18h48   #15
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Mais ce qui est bizard c'est que ca fonctionne nickel sous firefox et safari etc...
mais pas sous IE
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 18h53   #16
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Et que te renvoie
Code :
1
2
3
error: function(jqXHR, textStatus, errorThrown) { 
    alert(textStatus+' - '+errorThrown); 
}
?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 19h08   #17
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Ca me retourne parsererror - undefined

Qu'est ce que ça veut dire?

[Edit]

Comment je peux résoudre ce problème?
Merci d'avance
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 09h30   #18
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Bonjour j'ai pu lire sur le net que suite a parsererror - undefined ça peut venir d'un problème d'encodage utf8. J'ai lu ça sur des site en anglais, mais comment forcer l'utf8. Vous en pensez quoi?
thildouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 11h58   #19
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonjour

jQuery, jQuery UI et le web d'aujourd'hui travaillent en UTF-8.

Tutoriel : Passez à l'UTF-8 sans manquer une étape par Josselin Willette
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 12h01   #20
Invité de passage
 
Inscription : mai 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 28
Points : 4
Points : 4
Justement ma page est:
Code :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Mais si ça passe sous firefox et safari, ça ne doit pas venir de ça.
thildouille 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 01h58.


 
 
 
 
Partenaires

Hébergement Web