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 03/12/2010, 14h26   #1
Invité de passage
 
Vince
Inscription : décembre 2010
Messages : 1
Détails du profil
Informations personnelles :
Nom : Vince

Informations forums :
Inscription : décembre 2010
Messages : 1
Points : 0
Points : 0
Par défaut Selection d'id dynamique

Bonjour,

Je commence a utiliser jquery pour un nouveau projet après une longue utilisation de prototype et j'ai un peu de mal à comprendre comment modifier des informations de manière dynamique. Le but pour le moment est très simple : j'affiche un tableau que je veux mettre à jour pour activer/désactiver des éléments.

Le code html :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<table>
<tr>
	<td id="soumission_change_state_id_1" style="background-color: #FF0000">
		<a href="javascript:;" onclick="soumission_change_state(1);">X</a>
	</td>
	<td>
		texte
	</td>
</tr>
<tr>
	<td id="soumission_change_state_id_2" style="background-color: #FF0000">
		<a href="javascript:;" onclick="soumission_change_state(2);">X</a>
	</td>
	<td>
		kjhkjhkjhkjh
	</td>
</tr>
</table>
Le code jquery :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function soumission_change_state (id) {
    var soumission = "#soumission_change_state_id_"+id;
    $.ajax({
        type: "POST",
        dataType: 'json',
        url: "rpc/soumission_change_state.html",
        data: "id="+id,
        success: function(data){
            alert($(" l'id est %"+soumission+"%");
            $("#soumission_change_state_id_1").css("background-color", "#009900");
            $(soumission).css("background-color", "#009900");
        }
    });
}
La requête ajax se passe correctement et la fonction de callback fonctionne, m'affiche l'alert où je vois que ma variable soumission est bonne, mais après, ce n'est plus bon.
Code :
 $("#soumission_change_state_id_1").css("background-color", "#009900"); fonctionne, mais $(soumission).css("background-color", "#009900");
ne fonctionne pas, et pas d'erreur sur la console javascript de FF.

D'où ma question : est ce que jquery n'est pas capable de sélectionner des id qui sont dans une variable ? ou existe t il une astuce que j'ai zappé ...
schmurz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2010, 21h39   #2
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
Bonsoir

Voici un exemple (voir les commentaires du code) :
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!doctype html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<meta name="Author" content="Daniel Hagnoul">
	<title>Forum jQuery</title>
	<style>
		/* Base */
		body { background-color:#dcdcdc; color:#000000; font-family:sans-serif; font-size:medium; font-style:normal;
		font-weight:normal; line-height:normal; letter-spacing:normal; }
		h1,h2,h3,h4,h5 { font-family:serif; }
		div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img { margin:0px; padding:0px; }
		h1 { font-size:2em; text-shadow: 4px 4px 4px #bbbbbb; text-align:center; }
		p { padding:6px; }
		div#conteneur { width:95%; min-width:800px; min-height:500px; margin:12px auto; background-color:#FFFFFF;
		color:#000000; border:1px solid #666666; }
 
		/* Test */
	</style>
</head>
<body>
	<h1>Forum jQuery</h1>
	<div id="conteneur">
<table>
	<tr>
		<td id="soumission_change_state_id_1" style="background-color: #FF0000">
			<p>Un mot pour remplir</p>
		</td>
		<td>
			texte
		</td>
	</tr>
	<tr>
		<td id="soumission_change_state_id_2" style="background-color: #FF0000">
			<p>Un mot pour remplir</p>
		</td>
		<td>
			kjhkjhkjhkjh
		</td>
	</tr>
</table>
	</div> 
	<script charset="utf-8" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
	<script>
		$(function(){
 
function soumission_change_state(id){
    $.ajax({
        type: "POST",
        dataType: 'json',
        url: "rpc/soumission_change_state.html",
        data: "id="+id.slice(27),	// transmet uniquement le numéro de l'id
        success: function(data){
			/*
			 * alert($(" l'id est %"+soumission+"%");
			 *
			 * Je ne comprends pas cette instruction et il manque un ) final avant le ;
			 */
            alert("L'id est : " + id);
            $("#soumission_change_state_id_1").css("background-color", "#009900");
            $("#"+id).css("background-color", "#009900");
        }
    });
}
 
/*
 * Gère l'événement click sur les td dont l'id commence par
 * Voir http://api.jquery.com/attribute-starts-with-selector/
 */
$("td[id^='soumission_change_state_id_']").click(function(){
	soumission_change_state(this.id);
});
		});
	</script>
</body>  
</html>
__________________

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 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h31.


 
 
 
 
Partenaires

Hébergement Web