Stack Overflow en español Asked on November 13, 2021
Me podrían ayudar co un problema:
Deseo ejecutar código PHP dentro de Javascript.
<html>
<head></head>
<body>
<script type="text/javascript">
<?php echo "hola como estan"; ?>);
</script>
</body>
</html>
La salida html:
<html>
<head></head>
<body>
<script type="text/javascript">
hola como estan <-- marcado en rojo en el inspector del navegador
</script>
</body>
</html>
El error en la consola del navegador:
Uncaught SyntaxError: Unexpected identifier
En el código del script tú lo habías puesto como:
<script>
<?php echo 'Hola mundo'; ?>
</script>
Ahí el problema, al poner echo haces que el navegador quite las etiquetas php y pone solo el hola mundo. Lo que tienes que hacer tendrías que mezclar código php con js. Por ejemplo: Si quieres hacer que salga un console.log tienes que hacer lo siguiente.
<script>
console.log('<?php echo 'Hola mundo';?>');
</script>
Answered by Angel R.D on November 13, 2021
Actualmente yo mando así
$.post("<?php echo URL ?>/enviarRevisionDocumental",
o dime mas sobre tu inquietud con gusto te ayudo.
Answered by antonx Abarca on November 13, 2021
Puedes usar type (nota el uso de type="php" en el script que contiene código php). El ejemplo es muy inseguro porque usa eval sin filtro, así que cuidado. (Básicamente es lo que usan bibliotecas como Babel):
<?php
if(isset($_POST['ev']) && $_POST['ev']=='1' && isset($_POST['que']) && !empty($_POST['que'])){
eval($_POST['que']);
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<script type="php">
echo 'hola, hoy es '.date('d-m-Y');
</script>
<script>
function request(url,callback,params){
var H=new XMLHttpRequest();
if(!H)return;
var p='';
for(var i in params){
p+='&'+i+'='+encodeURIComponent(params[i]);
}
var signo=url.indexOf('?')==-1 ? '?' :'&';
H.open('post',url+signo+Math.random(),true);
H.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
H.onreadystatechange=function(){
if(H.readyState==4 && (H.status == 200 || H.status==0) ){
if(callback)callback(H.responseText);
H.onreadystatechange=function(){}
H.abort();
H=null;
}
}
H.send(p);
}
var scs=[].slice.call(document.getElementsByTagName('script'));
scs.forEach(
function(sc){
if(sc.type=='php'){
request(
'?',
function(r){
sc.parentNode.replaceChild(document.createTextNode(r),sc);
},
{'ev':'1','que':sc.text}
);
}
}
);
</script>
</body>
</html>
Answered by Andrés Ricardo Fernández on November 13, 2021
Creo que hay un error de concepto a la hora de estructurar la tarea que quieres hacer.
Realmente no se ejecuta PHP dentro de Javascript, sino que Javascript hará uso de lo que PHP imprima dentro de sus etiquetas o funciones. Dado que PHP es lenguaje de servidor, se ejecutará antes que Javascript.
Básico para que se entienda, el orden en el que se ejecutan:
1º PHP (servidor)
2º HTML (navegador)
3º Javascript (navegador)
Entonces el flujo iría de la siguiente forma:
1.- ¿Qué resultado queremos conseguir?
<html>
<head></head>
<body>
<script>
alert("hola como estan");
</script>
</body>
</html>
2.- ¿Qué parte de ese resultado va a gestionar PHP?
hola como estan
3.- ¿Cómo imprime PHP este texto dentro de html?
<?php echo "hola como estan"; ?>
4.- ¿Cómo se pone todo en funcionamiento?
<html>
<head></head>
<body>
<script>
alert("<?php echo "hola como estan"; ?>");
// ^ ^
// (1) (2)
</script>
</body>
</html>
Ojo con la sintaxis, las comillas de Javascript hay que mantenerlas.
<?php
// varios textos en un array
$txt = array(
"Hola como estan",
"Hola que tal va",
"Hola ke ase XD",
);
// desordena el contenido del array
shuffle($txt);
?>
<html>
<head></head>
<body>
<script>
// cada vez que recarga el navegador
// debería lanzar el texto de forma
// aleatoria
alert("<?php echo $txt[0]; ?>");
</script>
</body>
</html>
Answered by OscarR on November 13, 2021
Asi como lo tienes es un error de sintaxis. Si quieres escribir algo puedes usar la consola asi:
<?php echo "console.log('hola como estan');"
O tambien un alert asi:
<?php echo "alert('hola como estan');"
Answered by alanfcm on November 13, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP