Foros del Web » Programando para Internet » PHP »

Llamar una Funcion desde un Form

Estas en el tema de Llamar una Funcion desde un Form en el foro de PHP en Foros del Web. Luego de buscar informacion por varias partes me decidi por probar por aca que es el foro donde mas informacion he encontrado. Mi problema es ...
  #1 (permalink)  
Antiguo 11/04/2012, 23:07
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 1
Llamar una Funcion desde un Form

Luego de buscar informacion por varias partes me decidi por probar por aca que es el foro donde mas informacion he encontrado. Mi problema es el siguiente

Tengo un archivo Categoria.php que basicamente tiene un form que te permite crear una categoria en una base de datos

Código HTML:
<form name="CrearCategoria" action="" method="post">

 <label>Nombre Categoria: </label><input type="text" name="NombreCat" size="25" />
 <label>Descripcion: </label><input type="text" name="Descripcion" size="25" />
<input name="Submit" type="submit" value="Crear" />
</form> 
Y tengo una funcion en PHP que se conecta a la base de datos y hace un INSERT a la tabla Categorias

Código PHP:
<?php 
function crear_categoria()
{
    
$con mysql_connect("localhost","usuario","contraseña");
    if (!
$con)
          {
          die(
'Could not connect: ' mysql_error());
          }

    
mysql_select_db("control_t"$con);

if(isset(
$_POST['nombre-usuario']) && isset($_POST['contrasena-usuario']))
{
    
$sql=("INSERT INTO t_categorias(id, NombreCat, Descripcion) VALUES (' ' , '$_POST[NombreCat]','$_POST[Descripcion]')");
    if (!
mysql_query($sql,$con))
          {
          die(
'Error: ' mysql_error());
          }
    echo 
" El cliente se ha agregado";
}
}
?>
Lo que quiero conseguir es que se ejecute la funcion sin tener que ir a otra pagina que me de el mensaje de que se agrego la categoria y quede listo para volver a agregar una categoria mas.

Desde ya Gracias
  #2 (permalink)  
Antiguo 11/04/2012, 23:10
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Llamar una Funcion desde un Form

Solo con PHP es imposible, si o si necesitas hacer una petición al servidor enviando los datos del formulario, lo que te queda es usar ajax, pero en cualquier caso, debes mandar a llamar al archivo PHP que procese los datos del formulario...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 11/04/2012, 23:25
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Llamar una Funcion desde un Form

<saludos>
Cuando dices que va a otra página, a cual página va?
Yo no veo que en el action del formulario viaje a otra página,
por ende imagino que la función que muestras esta en el mismo archivo
que mencionas.

Así entonces, como el formulario es enviado hacía esta misma página,
lo que puedes hacer es preguntar por los valores
del formulario que llegan en el $_POST, y si llegan los mismos
entonces en ese punto se debería llamar la función que tienes creada.

Es decir, el if que tienes dentro de la función (donde preguntas por los $_POST) yo lo pondría por fuera, y si el if se cumple entonces llamaría a la función y le pasaría
los parámetros a la misma.

Espero te sirva la idea.

</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 11/04/2012, 23:34
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 1
Respuesta: Llamar una Funcion desde un Form

Estaba intentando modificar el primer post porque me equivoque en el
Código PHP:
if(isset($_POST['nombre-usuario']) && isset($_POST['contrasena-usuario'])) 
en realidad en mi codigo esta
Código PHP:
if(isset($_POST['NombreCat']) && isset($_POST['Descripcion'])) 
.

Ahora si me explico nuevamente, yo tengo la funcion dentro de mi pagina "catagorias.php" que en realidad es una pagina con formato html
Al ser un formulario muy pequeño que solo tiene 2 valores lo que quiero es que se ejecute la funcion pero que se mantenga en la misma pagina categorias.php

Por el momento lo que estoy haciendo es llamar a un archivo php crearcategoria.php que tiene la misma funcion y luego me redirecciona de nuevo a la pagina!
pero queria ver si habia una forma de hacerlo dentro de la misma pagina
  #5 (permalink)  
Antiguo 12/04/2012, 00:02
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Llamar una Funcion desde un Form

<saludos>
Claro que es posible, y es como te lo menciono,
la función entonces debe residir en el mismo archivo
y validar si llegaron los valores de post para invocar
a la función.

Ej:

Archivo Categoria.php
Código PHP:
Ver original
  1. <form method='post' action=''>
  2. <input type='text' name='NombreCat'/>
  3. <input type='text' name='Descripcion'/>
  4. </form>
  5.  
  6. <?php
  7. if(isset($_POST['NombreCat']) && isset($_POST['Descripcion']))
  8. crear_categoria();
  9.  
  10. function crear_categoria()
  11. {
  12.     $con = mysql_connect("localhost","usuario","contraseña");
  13.     if (!$con)
  14.           {
  15.           die('Could not connect: ' . mysql_error());
  16.           }
  17.  
  18.     mysql_select_db("control_t", $con);
  19.  
  20. if(isset($_POST['nombre-usuario']) && isset($_POST['contrasena-usuario']))
  21. {
  22.     $sql=("INSERT INTO t_categorias(id, NombreCat, Descripcion) VALUES (' ' , '$_POST[NombreCat]','$_POST[Descripcion]')");
  23.     if (!mysql_query($sql,$con))
  24.           {
  25.           die('Error: ' . mysql_error());
  26.           }
  27.     echo " El cliente se ha agregado";
  28. }
  29. }
  30.  
  31. ?>

Si de este modo se presentaran novedades porque no hay
acceso a los datos de post, entonces yo invocaría la función
de este modo

Código PHP:
Ver original
  1. if(isset($_POST['NombreCat']) && isset($_POST['Descripcion']))
  2. crear_categoria($_POST);

Y el resto seguiría igual.
Suerte con eso.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 12/04/2012, 09:30
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 1
Respuesta: Llamar una Funcion desde un Form

Excelente lo pruebo y te comento como me fue!
--
Lo probe y funciono re bien!
Gracias

----
Tengo una ultima consulta!
una vez que termino de ejecutar la funcion crear_categorias() hay alguna forma de vaciar el contenido de $_POST['NombreCAT'] y $_POST['Descripcion'] para el hipotetico caso que tenga que agregar mas de una categoria no me quede un nombre de categoria o descripcion vieja!

no se si se entiende lo que quiero decir?

Última edición por wildllama; 13/04/2012 a las 11:22

Etiquetas: sql, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:26.