¿Cómo llamar a una función JavaScript desde PHP?
<?php
jsfunction();
// or
echo(jsfunction());
// or
// Anything else?
El siguiente código es de xyz.html (al hacer clic en un botón) llama wait()
a un xyz.js externo . Esto wait()
llama a wait.php.
function wait()
{
xmlhttp=GetXmlHttpObject();
var url="wait.php"; \
xmlhttp.onreadystatechange=statechanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechanged()
{
if(xmlhttp.readyState==4) {
document.getElementById("txt").innerHTML=xmlhttp.responseText;
}
}
y espera.php
<?php echo "<script> loadxml(); </script>";
donde loadxml()
llama al código de otro archivo PHP de la misma manera.
De loadxml()
lo contrario, funciona bien, pero no se llama como lo quiero.
php
javascript
Zeeshan Rang
fuente
fuente
Respuestas:
En lo que respecta a PHP (o realmente, un servidor web en general), una página HTML no es nada más complicado que una gran cadena.
Todo el trabajo sofisticado que puede hacer con un lenguaje como PHP, leer desde bases de datos y servicios web y todo eso, el objetivo final es el mismo principio básico: generar una cadena de HTML *.
Su gran cadena HTML no se convierte en nada más especial que eso hasta que la carga un navegador web. Una vez que un navegador carga la página, entonces pasa todo el otra magia - diseño, modelo de caja de cosas, la generación de DOM, y muchas otras cosas, incluyendo la ejecución de JavaScript.
Por lo tanto, no "llama a JavaScript desde PHP", "incluye una llamada de función de JavaScript en su salida".
Hay muchas maneras de hacer esto, pero aquí hay un par.
Usando solo PHP:
Escapar del modo php al modo de salida directa:
No necesita devolver el nombre de una función ni nada por el estilo. En primer lugar, deje de escribir solicitudes AJAX a mano. Solo te lo estás poniendo difícil. Obtenga jQuery o uno de los otros marcos excelentes que existen.
En segundo lugar, comprenda que ya va a ejecutar el código JavaScript una vez que se reciba la respuesta de la llamada AJAX.
Aquí hay un ejemplo de lo que creo que estás haciendo con AJAX de jQuery
Ahora, si está decidido a enviar un nombre de función desde PHP a la llamada AJAX, también puede hacerlo.
* O JSON o XML, etc.
fuente
Siempre uso
echo "<script> function(); </script>";
o algo similar. técnicamente no estás llamando a la función en PHP, pero esto es lo más cercano que vas a llegar.fuente
echo
en una variable enPHP
?Por ahora (febrero de 2012) hay una nueva característica para esto. Mira aquí
Ejemplo de código (tomado de la web):
fuente
No puedes Puede llamar a una función JS desde HTML generado por PHP, pero eso es otra cosa.
fuente
Eso no es posible. PHP es un lenguaje del lado del servidor y del lado del cliente JavaScript y realmente no se conocen mucho el uno del otro. Necesitaría un intérprete de JavaScript del lado del servidor (como Aptanas Jaxer). Tal vez lo que realmente desea hacer es usar una arquitectura similar a Ajax (la función de JavaScript llama al script PHP de forma asincrónica y hace algo con el resultado).
fuente
Si quieres repetirlo para una ejecución posterior, está bien
Si desea ejecutar JS y usar los resultados en PHP, use V8JS
Puede consultar aquí para obtener más información: ¿Qué son las extensiones en php v8js?
Si desea ejecutar HTML y JS y usar la salida en PHP http://htmlunit.sourceforge.net/ es su solución
fuente
PHP se ejecuta en el servidor. JavaScript se ejecuta en el cliente. Entonces php no puede llamar a una función de JavaScript.
fuente
puedes probar este también: -
fuente
intenta así
fuente
Es posible que no pueda hacer esto directamente, pero la biblioteca Xajax está bastante cerca de lo que desea. Lo demostraré con un ejemplo. Aquí hay un botón en una página web:
Nuestra suposición intuitiva sería que
xajax_addCity()
es una función de Javascript, ¿verdad? Bueno, correcto e incorrecto. Lo bueno que permite Xajax es que no tenemos ninguna función JS llamadaxajax_addCity()
, ¡pero lo que sí tenemos es una función PHP llamadaaddCity()
que puede hacer lo que PHP hace!Piénsalo por un minuto. ¡Estamos prácticamente invocando una función PHP a partir del código Javascript! Ese ejemplo demasiado simplificado fue solo para abrir el apetito, una mejor explicación está en el sitio de Xajax, ¡diviértete!
fuente