Prueba esto:
<?php $htmlString= 'testing'; ?>
<html>
<body>
<script type="text/javascript">
// notice the quotes around the ?php tag
var htmlString="<?php echo $htmlString; ?>";
alert(htmlString);
</script>
</body>
</html>
Cuando se encuentra con problemas como éste, una buena idea es comprobar su navegador para obtener los errores de JavaScript. Los diferentes navegadores tienen diferentes formas de mostrar esto, pero busca una consola de JavaScript o algo así. Además, verifique el origen de su página según lo visualiza el navegador.
A veces los principiantes se confunden con las comillas de la cadena: en la parte de PHP, asignó 'testing'
a $htmlString
. Esto pone un valor de cadena dentro de esa variable, pero el valor no tiene las comillas: son solo para el intérprete, por lo que sabe: oh, ahora viene una cadena literal.
@ inf3rno, si es incorrecto, deberíamos arreglarlo! no podemos dejar una respuesta incorrecta aquí ... ¿qué es exactamente lo que está mal? (supongo que te opones al último párrafo ... hm ... es un poco difícil de explicarle esto a un principiante - ¿tienes una mejor toma?) –
@ inf3rno, oh ... Acabo de ver tu propia respuesta. Hm ... tienes un punto allí ... excepto, creo que para el nivel OP es ATM, es un poco TMI. Parece que todavía no se ha metido en la cabeza algunas cosas básicas. –
Es fácil de explicar, si quieres inyectar una cadena al código javascript, tienes que escaparte para javascript ... json_encode hace eso ... Se es muy similar a la prevención de inyección sql, por ahí tienes t o escape para sql ... – inf3rno