elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Llamar funcion de una clase php desde jquery
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Llamar funcion de una clase php desde jquery  (Leído 10,692 veces)
Ethgar

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Llamar funcion de una clase php desde jquery
« en: 24 Noviembre 2015, 18:56 pm »

Buenas tardes, he tenido la necesidad de ejecutar una función desde jquery, lo explico un poco más;
 Tengo un archivo "Funciones.php" donde tengo obviamente mis funciones, y tengo un archivo en el que tengo un formulario, el cual mandaría la información a guardar, utilizando jquery logro enviar el formulario a un archivo externo (Sin funciones), el cual recibe el post y lo guarda, tuve que hacerlo así por que no he podido lograr que mande el formulario a una función; les dejo el siguiente código que es lo que tengo:

archivo funciones.php
Código
  1. <?php
  2. ini_set('display_errors', '1');
  3. require_once('../conex.php');
  4.  
  5. class Funciones {
  6. function __construct() {
  7.  
  8. }
  9.       public function guarda() {
  10.            $guardar = Conex::conex()->query("INSERT INTO tabla (valor1, valor2, valor3) VALUES (:valor1, :valor2, :valor3)');
  11.           $guardar->execute($_POST);
  12.      }
  13. }
  14.  


archivo que contiene el formulario
solo pondré el encabezado del form y el jquery que utilizo  (en el action del form puse el archivo que actualmente tengo para recibir el form):

Código
  1. <form role="form"  method="POST" action="guarda.php" class="formulario" id="formulario">
  2.  


y este es el jquery:

Código
  1. $(document).ready(function() {
  2. $(this).on("submit", ".formulario", function(e) {
  3. e.preventDefault();
  4. var enlace = $(this).attr('action');
  5. var formulario = $(this);
  6. $.ajax({
  7. url: enlace,
  8.         data: $('#formulario').serialize(),
  9.         type: 'post',
  10.         success: function(data) {
  11.             }
  12. });
  13.  
  14. })
  15.  
  16.  
  17.  
  18.  
  19. })
  20.  


Espero Alguien me pueda ayudar, me atasque aquí ya como tres días, saludos!!

Mod: Temas sobre PHP van al subforo de PHP.


« Última modificación: 24 Noviembre 2015, 19:27 pm por #!drvy » En línea

gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: Llamar funcion de una clase php desde jquery
« Respuesta #1 en: 26 Noviembre 2015, 16:46 pm »

Los formularios no se pueden (o deben) procesar directamente, primero hay que hacer ciertas comprobaciones y si todo esta correcto entonces se llama a la función para que procese los datos.

En el archivo Guarda.php (el que veo en el action del formulario y el del jquery supongo) tienes que llamar a la función guarda().

Primero declaras las variables del post y luego las envias como parametros al llamar la función.

Código
  1. // Si el formulario esta en el mismo archivo simplemente envuelves el código en un if
  2. if (@$_POST['current_email'] && @$_POST['new_email'] && @$_POST['confirm_new_email']) {
  3.  
  4.    $valor1 = filter_input(INPUT_POST, 'valor1', FILTER_SANITIZE_STRING);
  5.    $valor2 = filter_input(INPUT_POST, 'valor2', FILTER_SANITIZE_STRING);
  6.    $valor3 = filter_input(INPUT_POST, 'valor3', FILTER_SANITIZE_STRING);
  7.  
  8.    if ($valor1 && $valor2 && $valor3) {
  9.        // depende de como instancies la clase
  10.        $returned = $change_email = $Funciones->guarda($valor1, $valor2, $valor3);
  11.    }
  12.    else {
  13.        // error falta rellenar formulario...
  14.    }
  15.  
  16.    // lo que quieras devolver de la función si hay algun problema lo indicas aqui
  17.    if ($returned == 'error') {
  18.        // error al guardar la info...
  19.    }
  20. }
  21.  
  22. // Aquí puedes poner el formulario html
  23. ?>
  24.  
  25. <form role="form"  method="POST" action="guarda.php" class="formulario" id="formulario">


« Última modificación: 26 Noviembre 2015, 16:50 pm por gAb1 » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Llamar funcion de una clase php desde jquery
« Respuesta #2 en: 26 Noviembre 2015, 18:04 pm »

Citar
Los formularios no se pueden (o deben) procesar directamente, primero hay que hacer ciertas comprobaciones y si todo esta correcto entonces se llama a la función para que procese los datos.

En este caso parece que utiliza sentencias preparadas y por tanto se evita directamente cualquier SQLi.

@Ethgar, probablemente quieras implementarte una pequeña API para controlar eventos solicitados vía ajax.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Llamar a una función que está dentro de una clase? « 1 2 »
PHP
Servia 16 32,045 Último mensaje 29 Marzo 2009, 20:34 pm
por Nakp
problema llamar funcion jquery con php
PHP
soru13 2 8,857 Último mensaje 22 Enero 2012, 19:47 pm
por soru13
Llamar a una funcion Jquery
Desarrollo Web
mapers 8 3,679 Último mensaje 14 Enero 2014, 00:00 am
por engel lex
Llamar metodo de una clase desde otra en asp.net
Desarrollo Web
jabedoya 0 2,552 Último mensaje 26 Mayo 2014, 18:56 pm
por jabedoya
Llamar a la funcion de una clase desde otra clase
PHP
facuzek232 0 3,128 Último mensaje 4 Agosto 2017, 02:01 am
por facuzek232
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines