Esta puede ser una respuesta simple, pero estoy usando $ .ajax de jQuery para llamar a un script PHP. Lo que quiero hacer es básicamente poner ese script PHP dentro de una función y llamar a la función PHP desde javascript.
<?php
if(isset($_POST['something'] {
//do something
}
?>
a esto
<?php
function test() {
if(isset($_POST['something'] {
//do something.
}
}
?>
¿Cómo llamaría a esa función en javascript? Ahora mismo estoy usando $ .ajax con el archivo PHP listado.
Respuestas:
Úselo
$.ajax
para llamar a un contexto de servidor (o URL, o lo que sea) para invocar una 'acción' en particular. Lo que quieres es algo como:En el lado del servidor, el
action
parámetro POST debe leerse y el valor correspondiente debe apuntar al método a invocar, por ejemplo:Creo que es una simple encarnación del patrón Command .
fuente
Desarrollé un complemento de jQuery que te permite llamar a cualquier función principal de PHP o incluso a funciones PHP definidas por el usuario como métodos del complemento: jquery.php
Después de incluir jquery y jquery.php en el encabezado de nuestro documento y colocar request_handler.php en nuestro servidor, comenzaríamos a usar el complemento de la manera que se describe a continuación.
Para facilitar su uso, consulte la función de manera sencilla:
Luego inicialice el complemento:
Y ahora algunos escenarios de uso:
Demostrando el encadenamiento de funciones PHP:
Demostrando el envío de un bloque JSON de pseudocódigo PHP:
La configuración de backend proporciona una lista blanca para que pueda restringir las funciones que se pueden llamar. También hay algunos otros patrones para trabajar con PHP descritos por el complemento.
fuente
Me quedaría con el enfoque normal para llamar al archivo directamente, pero si realmente desea llamar a una función, eche un vistazo a JSON-RPC (Llamada a procedimiento remoto JSON).
Básicamente, envía una cadena JSON en un formato específico al servidor, por ejemplo
que incluye la función a llamar y los parámetros de esa función.
Por supuesto, el servidor debe saber cómo manejar estas solicitudes.
Aquí está el complemento jQuery para JSON-RPC y, por ejemplo, el servidor Zend JSON como implementación de servidor en PHP.
Esto puede resultar excesivo para un proyecto pequeño o para menos funciones. La forma más fácil sería la respuesta de karim . Por otro lado, JSON-RPC es un estándar.
fuente
No puede llamar a una función PHP con Javascript, de la misma manera que no puede llamar a funciones PHP arbitrarias cuando carga una página (solo piense en las implicaciones de seguridad).
Si necesita envolver su código en una función por cualquier motivo, ¿por qué no coloca una llamada a la función debajo de la definición de la función, por ejemplo:
O use un PHP incluye:
fuente
Tendrá que exponer un punto final (URL) en su sistema que aceptará la solicitud POST de la llamada ajax en jQuery.
Luego, al procesar esa URL desde PHP, llamaría a su función y devolvería el resultado en el formato apropiado (JSON más probablemente, o XML si lo prefiere).
fuente
Puede usar mi biblioteca que lo hace automáticamente, la he estado mejorando durante los últimos 2 años http://phery-php-ajax.net
El javascript sería tan simple como
Puede pasar toda la parte dinámica de JavaScript al servidor, con un generador de consultas como una interfaz encadenable, y puede pasar cualquier tipo de datos a PHP. Por ejemplo, algunas funciones que ocuparían demasiado espacio en el lado de javascript, podrían llamarse en el servidor usando esto (en este ejemplo, mcrypt, que en javascript sería casi imposible de lograr):
y en el servidor
Ahora
variable
tendrá los datos cifrados.fuente