2010-07-07 6 views
0

En fonction des préférences de l'utilisateur, j'injecte dans mon application un jason_encoded (tableau de traduction) qui est ensuite converti en objet javascript et utilisé par l'application. Selon vous, quel est le meilleur moyen de le faire?Quelle est la meilleure façon d'injecter javascript dans mon application?

Solution 1:

<head> 
    <script type="text/javascript" src="lang.php"></script> 
</head> 

Solution 2 (code est exécuté à l'intérieur index.php):

<head> 
     <?php 
      require_once(database_connect.php); 
      //Prepare $myDictionary... 

      $dictionary = json_encode($myDictionary); 
      echo (" 
       <script type='text/javascript'> 
       var dictionary=". $dictionary ."; 
       </script> 
      "); 

      require_once(database_close.php); 
     ?> 
</head> 

Je suis actuellement en utilisant la première solution, parce que je peux mettre en cache les résultats, mais Je ne sais pas si mettre tout ce code php (y compris les fonctions require/include) dans index.php est une bonne ou une mauvaise idée. Merci pour vos suggestions

Répondre

3

L'écho des balises HTML en tant que chaînes (par exemple, echo "< p> ... </p>") est généralement une mauvaise façon d'utiliser PHP. Utilisez alternative syntax et évitez de trop mélanger PHP et HTML. Pour être plus proche de l'approche MVC, il devrait ressembler à ceci.

<?php 

require_once(database_connect.php); 
$dictionaryJSON = json_encode($myDictionary); 
require_once(database_close.php); 

// end of controller, begin of view 
?> 
<head> 
    <script type='text/javascript'> 
     var dictionary=<?php echo $dictionaryJSON ?>; 
    </script> 
</head> 

Et votre première approche semble également bonne, surtout lorsque vous avez besoin de mettre en cache.

3

Je voudrais aller avec la version un - il semble juste plus net et sépare les choses.

Questions connexes