2010-04-08 8 views
0

Dans mon code, j'utilise JavaScript pour l'interface utilisateur et PHP pour le back-end. J'utilise également PHP pour stocker les paramètres de l'application et parfois mon code d'interface utilisateur doit accéder à cette information. Mon fichier de configuration ressemble à ceci (config.php):Comment puis-je charger des informations de configuration statiques

$resolution_x = 1920; 
$resolution_y = 1080; 
etc... 

Quand je besoin d'accéder à ces paramètres forment JavaScript, j'utilise simplement

<?php echo ... ?> 

pour remplacer la valeur directement, mais ne me semble pas très robuste.

Y a-t-il des dangers de faire cela que je ne suis pas au courant? Existe-t-il une meilleure façon de le faire?

Merci,

+0

http://stackoverflow.com/questions/1091540/how-to-get-screen-resolution-of-visitor-in-javascript-and-or-php –

+0

Modifier: Mon code inline n'a pas été correctement analysé: j'ai déjà utilisait . Désolé pour la confusion, les gars. – Goro

Répondre

3

Est-ce ce que vous cherchez? Je pense que c'est le moyen le plus robuste, sauf si vous voulez trouver la résolution par vous-même avec JavaScript.

Vous pouvez le rendre plus avancé comme ceci:

config.php

<?php 
    $congig = array(
     'resolution_x' => 1024, 
     'resolution_y' => 768 
     ); 
?> 

index.php

<?php 
    include('config.php'); 
?> 
<script type="text/javascript"> 
    var config = <?php echo json_encode($config); ?>; 
    alert(config.resolution_x); 
</script> 
1

Peut-être est ce que vous faites déjà, mais vous pouvez echo la valeur de configuration dans une variable dans votre javascri pt. IE: var Resolution_X = <?php echo $resolution_x; ?>;

+0

Oui, c'était ce que je faisais déjà: voir éditer au message original – Goro

1

Echouer les variables une à une devient fastidieux si vous avez besoin d'ajouter beaucoup d'options. Il y avait déjà une meilleure solution suggérée qui utilise un tableau et un include, mais il y a aussi la possibilité de créer un objet dans le backend qui a une méthode qui récupère la configuration sous forme de tableau. Vous pouvez ensuite obtenir la configuration dans JS en faisant écho le résultat de l'appel de cette méthode dans le fichier HTML/view avec PHP comme dans les solutions précédentes, ou en appelant cette méthode avec une requête HTTP supplémentaire de JS qui nécessiterait les frais généraux supplémentaires, mais, le cas échéant, introduire aussi paresseux chargement de la configuration, ce qui pourrait être bénéfique si la plupart du JavaScript n'a pas besoin de la configuration:

PHP

 
class Configuration 
{ 
    public static function getAll() 
    { 
     return file_get_contents('config.php'); 
    } 
} 

class ConfigController 
{ 
    public function getConfigAction() 
    { 
     $config = Configuration::getAll(); 
     return json_encode($config); 
    } 
} 

JS

 
function getConfig() { 
    /* 
    * Send an HTTP request to the ConfigController's getConfigAction in your 
    * favorite manner here. 
    */ 
} 

var config = getConfig(configUri); 
Questions connexes