Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 24/04/2011, 12h44   #1
Invité de passage
 
Inscription : mai 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 11
Points : 1
Points : 1
Par défaut Passage de variable php à javascript

Bonjour,

je suis en train de créer un petit site et je rencontre un problème qui me parait étrange avec une requête javascript.

J'exécute ce morceau de code :

Code php :
<a href="#" onclick="document.getElementById('resultsTable').innerHTML='<?php echo $tag1; ?>'">1&egrave;re journ&eacute;e</a>

si
tout va bien,

si
Code php :
1
2
3
$article = new DAL_Articles();
$content = mysql_fetch_assoc($article->getArticleByTitle('index'));
$tag1 = html_entity_decode($content['article']);
rien ne s'affiche.
Alors que ce code marche très bien, j'ai fait des tests, et si je ne tente pas de l'afficher avec ma requête javascript, il s'affiche très bien.

Est-ce un comportement normal ? Y-a-t-il un moyen de contourner le problème ?

D'avance merci
Catsloveuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2011, 14h25   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
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 806
Points : 35 803
Points : 35 803
J'imagine que si tu avais lu Important : Les règles incontournables d'utilisation de ce forum et appliquer ceci :
Citation:
Suite à ce rappel, je voudrais porter à votre attention que ce forum ne doit contenir que le code affiché par le navigateur. En effet, les codes PHP ou tout autre langage dynamique ne servent qu'à générer le corps de votre page et donc votre problème ne pourra être résolu qu'en étudiant le code interprété par le navigateur. De ce fait, avant de poser votre question merci d'épurer votre code de tout langage serveur.
cela permettrait de pouvoir vérifier ce qui ne va pas !
__________________
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/04/2011, 14h41   #3
Invité de passage
 
Inscription : mai 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 11
Points : 1
Points : 1
Merci,

En fait j'ai avancé dans mes recherches et ce qui ne va pas c'est que le contenu de ma variable contient des balises html (<p>, <b> ...) et c'est ça qui bloque.

unterminated string literal
[Stopper sur une erreur] document.getElementById('resultsTable').innerHTML='<p>

Y-a-t-il un moyen de contourner le pb ?

D'avance merci.
Catsloveuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2011, 15h22   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
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 806
Points : 35 803
Points : 35 803
Citation:
Envoyé par Catsloveuse
En fait j'ai avancé dans mes recherches et ce qui ne va pas c'est que le contenu de ma variable contient des balises html (<p>, <b> ...) et c'est ça qui bloque.
Non, rien à voir !
Il s'agit très certainement d'un problème de quotes qui, encore une fois, apparaitrait clairement si tu montrais le code HTML généré !
__________________
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/04/2011, 18h22   #5
Invité de passage
 
Inscription : mai 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 11
Points : 1
Points : 1
OK donc je retente ma chance !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
     <?php 
				$article = new DAL_Articles();
				$content = mysql_fetch_assoc($article->getArticleByTitle('results1'));
				$tag1 = html_entity_decode($content['article']);
                                $content = mysql_fetch_assoc($article->getArticleByTitle('results2'));
				$tag2 = html_entity_decode($content['article']);
     ?> 
 
         <table id="results">
			<tr>
				<td class="dayTab"><a href="#" onclick="document.getElementById('resultsTable').innerHTML='<?php echo $tag1;?>'"><div class="contentDayTab">1&egrave;re journ&eacute;e</div></a></td>
			</tr>
			<tr>  
				<td class="dayTab"><a href="#" onclick="document.getElementById('resultsTable').innerHTML='<?php echo $tag2; ?>'"><div class="contentDayTab">2&egrave;me journ&eacute;e</div></a></td>
			</tr>
			<tr>
				<td class="dayTab"><a href="#" onclick="document.getElementById('resultsTable').innerHTML='<?php echo $tag3; ?>'"><div class="contentDayTab">3&egrave;me journ&eacute;e</div></a></td>
			</tr>
       </table>
       <div id="resultsTable"></div>
J'ai en parti résolu mon soucis, maintenant le contenu apparait, mais étrangement, pas du tout dans la div indiquée.

Mes balises $tag1, $tag2... contiennent du code HTML avec des balises HTML mais surtout des tableaux (il s'agit d'afficher des résultats de compétitions). Au début j'avais mis ma div resulsTable dans le tableau du dessus avec un rowspan, mais apparemment les balises <table> entraient en conflit et généraient une mise en page assez étrange, j'ai donc modifié pour faire en sorte de ne plus avoir un tableau dans un tableau, mais cette fois, le contenu des tags ne s'affiche pas dans ma div resultsTable, comme je le lui demande.


Voici le code généré :

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<form>
85 <table id="results">
86 <tr>
87 <td class="dayTab"><a href="#" onclick="document.getElementById('resultsTable').innerHTML='<p>
88 le 01 Janvier 2011</p>
89<table border="1" cellpadding="0" cellspacing="0">
90 <thead>
91 <tr>
92 <th scope="row">
93 Place</th>
94 <th scope="col">
95 Nom du concurrent</th>
96 <th scope="col">
97 Num&eacute;ro de voile</th>
98 </tr>
99 </thead>
100 <tbody>
101 <tr>
102 <th scope="row">
103 1</th>
104 <td>
105 Toto</td>
106 <td>
107 FR-002</td>
108 </tr>
109 <tr>
110 <th scope="row">
111 2</th>
112 <td>
113 Blu</td>
114 <td>
115 FR-0067</td>
116 </tr>
117 <tr>
118 <th scope="row">
119 3</th>
120 <td>
121 Bernard</td>
122 <td>
123 FR_012</td>
124 </tr>
125 <tr>
126 <th scope="row">
127 4</th>
128 <td>
129 Henri</td>
130 <td>
131 FR-006</td>
132 </tr>
133 <tr>
134 <th scope="row">
135 5</th>
136 <td>
137 Georges</td>
138 <td>
139 FR-008</td>
140 </tr>
141 <tr>
142 <th scope="row">
143 6</th>
144 <td>
145 Alphonse</td>
146 <td>
147 FR-042</td>
148 </tr>
149 <tr>
150 <th scope="row">
151 7</th>
152 <td>
153 G&eacute;rard</td>
154 <td>
155 FR-07</td>
156 </tr>
157 <tr>
158 <th scope="row">
159 8</th>
160 <td>
161 Yves</td>
162 <td>
163 FR-090</td>
164 </tr>
165 <tr>
166 <th scope="row">
167 9</th>
168 <td>
169 Bruno</td>
170 <td>
171 FR-098</td>
172 </tr>
173 <tr>
174 <th scope="row">
175 10</th>
176 <td>
177 Jean-Pierre</td>
178 <td>
179 FR-056</td>
180 </tr>
181 <tr>
182 <th scope="row">
183 11</th>
184 <td>
185 Simon</td>
186 <td>
187 FR-034</td>
188 </tr>
189 </tbody>
190</table>
191'"><div class="contentDayTab">1&egrave;re journ&eacute;e</div></a></td>
192 </tr>
193 <tr>
194 <td class="dayTab"><a href="#" onclick="document.getElementById('resultsTable').innerHTML='<table border=0 bgcolor=#FF6699 width=500 align=center><tr><td><font color=#ffffff><br />
195<b>Notice</b>: Undefined variable: tag2 in <b>/Users/audrey/Sites/SiteAssocCharVoile/SITEWEB/race.php</b> on line <b>39</b><br />
196</font></td></tr></table>'"><div class="contentDayTab">2&egrave;me journ&eacute;e</div></a></td>
197 </tr>
198 <tr>
199 <td class="dayTab"><a href="#" onclick="document.getElementById('resultsTable').innerHTML='<table border=0 bgcolor=#FF6699 width=500 align=center><tr><td><font color=#ffffff><br />
200<b>Notice</b>: Undefined variable: tag2 in <b>/Users/audrey/Sites/SiteAssocCharVoile/SITEWEB/race.php</b> on line <b>42</b><br />
201</font></td></tr></table>'"><div class="contentDayTab">3&egrave;me journ&eacute;e</div></a></td>
202 </tr>

Aurai-je oublié quelque chose ?
Catsloveuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2011, 21h14   #6
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
A la ligne 195 je vois :
Code :
 <b>Notice</b>: Undefined variable: tag2 in <b>/Users/audrey/Sites/SiteAssocCharVoile/SITEWEB/race.php</b> on line <b>39</b>

dû à une variable php "tag2" qui n'est pas définie.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2011, 23h28   #7
Invité de passage
 
Inscription : mai 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 11
Points : 1
Points : 1
oui oui ça j'en conviens, je tente déjà de régler mon problème de tag1 qui n'apparait pas du tout dans la div que je souhaite, je n'ai en effet pas encore renseigné ma base pour la suite.
Catsloveuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 02h25   #8
Membre du Club
 
Avatar de Billy KiT
 
Inscription : mars 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 47
Points : 59
Points : 59
Salut,
Code :
1
2
onclick="document.getElementById('resultsTable').innerHTML='<p>
88 le 01 Janvier 2011</p>89<table border="
Probleme de quotes comme disait Bovino, la première double quotes trouvée ferme le onclick.
Il faut ajouter (depuis php dans $tag1) un antislash \" devant toutes les double quotes
Billy KiT 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 06h20.


 
 
 
 
Partenaires

Hébergement Web