Domanda

Supponiamo che io stia usando un framework MVC e che le mie viste richiedano file Javascript situati in un file esterno alla vista. Il mio javascript che si trova nel file esterno dipende, tuttavia, da alcune variabili PHP a mio avviso. Se dovessi includere il Javascript in un tag all'interno della mia vista HTML, potrei semplicemente iniettare le variabili PHP nel Javascript.

So di poter creare campi di input nascosti e assegnare le variabili di cui ho bisogno come loro valori. C'è un altro modo più elegante?

So che probabilmente potrei cavarmela nominando il file .js in .php, ma non mi piace molto farlo.

È stato utile?

Soluzione

Non sono sicuro di aver compreso completamente la tua domanda, ma se avessi l'essenza giusta, non potresti semplicemente impostare le variabili javascript globali all'interno di un tag di script nella vista, che verrebbero quindi passate ai tuoi js esterni?

<script type="text/javascript">
  var myvar1 = <?=$myvar1 ?>;
  var myvar2 = "<?=$myvar2 ?>";
</script>
<script type="text/javascript" src="myexternaljs.js"></script>

Altri suggerimenti

È possibile effettuare una chiamata da JS al server (ad es. REST) ??per ottenere le variabili da cui si dipende. Dovresti creare un servizio per questo, ma la struttura rimarrebbe pulita.

Puoi pubblicarli sulla pagina prima di includere altri script o usare qualcosa del genere e includere il file php come un file js:

ob_start();
//all variables here
echo 'var someJson = '
    . json_enode($someArray);
$content = ob_get_clean();

header('Content-Type: text/javascript');
header('Content-Length: ' . strlen($content)); //or mb_strlen with utf8
echo $content;
exit;

Puoi aggiungere intestazioni per fornire la memorizzazione nella cache con etag (hashing / id), ultima modifica o scadenza / pragma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top