perchè il javascript viene eseguito lato client, quindi il js non richiama il server e non sa cosa sono i tag php.

A seconda dei casi puoi seguire 2 vie:

1. scrivi in un campo hidden il valore tramite php, e poi richiamando il valore con javascript tramite l'id del campo ottieni quello che vuoi, una cosa più o meno cosi:

<input type="hidden" id="campo_nascosto" value="<?php print $variabile ?>" />

E poi tramite js:

var msg = ''+document.getElementById('campo_nascosto').value+ '';

2. Usi una chiamata ajax, che chiami una pagina php che restituisca il valore di $variabile.


ciao