¿Cómo puedo crear una variable Javascript dinámica usando una cadena PHP?
Este enfoque no funciona. ¿Cómo debo arreglarlo para que funcione?
<?php $dynamicHTMLElementId = rand(); ?> <script type="text/javascript"> var dynamicHTMLElementId = window[<?php echo json_encode($dynamicHTMLElementId); ?>]; </script>Gracias a todos de antemano.
Tu intento es casi correcto. Por supuesto, por ejemplo, window[1029376] no es una propiedad de objeto válida de window .
Siempre que su salida de PHP sea sintaxis de JavaScript, funcionará.
Si su código tiene el propósito de seleccionar un elemento aleatorio (por poco realista que sea), use document.getElementById() para ID u otras funciones getElementBy...
<?php $dynamicHTMLElementId = rand(); ?> <script type="text/javascript"> var dynamicHTMLElement = document.getElementById('<?php echo json_encode($dynamicHTMLElementId); ?>'); </script>Esto puede resultar en (con la ID aleatoria):
<script type="text/javascript"> var dynamicHTMLElement = document.getElementById('1335407484'); </script> Simplemente mire el código fuente de la salida y compruebe si hay errores en la consola del navegador.
Tenga en cuenta que json_encode no generará comillas para un número.
Función simple de PHP para iniciar una matriz asociada de PHP como un objeto JSON en javascript.
function echoVariableInJavascript($variablename,$variable) { echo("<script type=\"text/javascript\">"); echo("var ".$variablename."= JSON.parse(atob(\"".base64_encode(json_encode($variable))."\"));"); echo("</script>"); } /*Usage*/ $object = ["ok"=>true,"status"=>"Good"]; echoVariableInJavascript("object", $object);