IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Passage de variable php à javascript


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Points : 8
    Points
    8
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="document.getElementById('resultsTable').innerHTML='<?php echo $tag1; ?>'">1&egrave;re journ&eacute;e</a>

    si
    tout va bien,

    si
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    J'imagine que si tu avais lu Important : Les règles incontournables d'utilisation de ce forum et appliquer ceci :
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    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.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    OK donc je retente ma chance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    A la ligne 195 je vois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <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.

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    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.

  8. #8
    Membre régulier Avatar de Billy KiT
    Inscrit en
    Mars 2011
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 66
    Points : 73
    Points
    73
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. [PHP 5.0] Passage de variable HTML - Javascript - PHP
    Par tweebe dans le forum Langage
    Réponses: 1
    Dernier message: 04/02/2011, 17h36
  2. Passage de variable entre Javascript et PHP
    Par iviewclear dans le forum jQuery
    Réponses: 8
    Dernier message: 31/12/2010, 14h24
  3. Passage de variable php en parametre d'une fonction javascript
    Par alex7532 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 26/01/2010, 19h46
  4. [PHP-JS] passage de variable de javascript à php
    Par msieurx dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2005, 20h42
  5. [PHP-JS] passage de variable php a javascript
    Par limpins dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/07/2005, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo