Foros del Web » Programando para Internet » PHP »

recoger una variable de un formulario en una funcion

Estas en el tema de recoger una variable de un formulario en una funcion en el foro de PHP en Foros del Web. Hola y gracias por la ayuda de antemano. Tengo tres formularios, todos hacen en principio una busqueda por lo que eso lo quiero poner en ...
  #1 (permalink)  
Antiguo 04/05/2005, 05:02
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
recoger una variable de un formulario en una funcion

Hola y gracias por la ayuda de antemano.

Tengo tres formularios, todos hacen en principio una busqueda por lo que eso lo quiero poner en una funcion para no repetir codigo en las tres paginas de tratamiento de datos.

Pero ¿como puedo recoger los datos en la funcion?

Como no se si me he explicado dejo lo siguiente:

fichero html 1
........ codigo......
<form action="1.php" method="post">
........ codigo......

fichero html 2
........ codigo......
<form action="2.php" method="post">
........ codigo......

fichero html 3
........ codigo......
<form action="3.php" method="post">
........ codigo......

y la funcion que quiero crear estaria en libreria.php asi pues como mando los datos a la funcion q esta ahi???

Gracias
  #2 (permalink)  
Antiguo 04/05/2005, 10:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En cada 1.php .. 2.php .. 3.php scripts de proceso .. incluyes tu libreria.php bajo una llamada:

include ("libreria.php");

donde estará tu función tipo:

function nose($parametros){
// proceso
}

Tomas tus variables de donde llegen ($_POST['....']) y se las pasas a tu función .. o simplemente las accedes en tu función si usas los arrays superglobales ya que son eso mismo "globales" (no es necesario pasarlos como parámetro o declarandolo como global).

Un saludo,
  #3 (permalink)  
Antiguo 05/05/2005, 02:00
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
Entonces puedo utilizar $_POST['......'] directamente en la funcion???? es decir tengo:

1.html,2.html,3.html -->paginas de los formularios.

1.php, 2.php, 3.php --> Scrips de tratamiento de datos.

fichero libreria que contiene la funcion buscar.

Es decir el siguiente codigo, asi pues es correcto porque a mi me da fallo.

function buscar (){
$consulta=("SELECT * FROM tabla where $_POST['nombre'] ");
$resultado=mysql_query($consulta);
echo("$resultado");
}
fichero php (en uno de ellos )
<?php
include('conexion.php')
include ('libreria.php')
buscar();
?>

y el error q me da es Undefined index: 'nombre' in libreria.php
por lo que deduzco q si es necesario pasar los datos como argumento $_POST['nombre'].

gracias por vuestras respuestas
  #4 (permalink)  
Antiguo 05/05/2005, 08:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. el tema de que $_POST sea "superglobal" sólo te sirve para tomar ahí mismo los datos de tu formulario.

Por "suerte" (para tu caso) las conexiones tiene todo ambito en el script (las puedes usar dentro y fuera de funciones sin más problemas ..

Las funciones tienen su "ambito" (scope) eso quiere decir . .que las variables no entran a una función salvo que lo hagas expresamente ni "salen" si no las devuelves (si es que lo requiere la función).

Código PHP:
function buscar (){
$consulta=("SELECT * FROM tabla where campo='".$_POST['nombre']."'");
$resultado=mysql_query($consulta);
// tendras que usar mysql_fetch_xxxx() o mysql_result() para obtener tu resultado .. no un "echo a lo que devuelve un mysql_query directo ..
echo $resultado; // para un echo ..  los paréntesis y comillas sobra.
}
fichero php (en uno de ellos )
<?php
include('conexion.php')
include (
'libreria.php')
buscar();
?>
Deberías poner el ejemplo de uno de tus formularios html .. por qué no se vé que "method" usas en tu formulario .. Si usastes GET .. es lógico que en "POST" no tengas nada ..

Un saludo,
  #5 (permalink)  
Antiguo 06/05/2005, 02:20
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 19 años
Puntos: 0
Solucionado.

El problema eran unas comillas no puestas en la opcion de un if (la funcion era algo más compleja de lo que te puse, habia unos ifs anidados para que cada formulario tuviera su propia consulta) ty por eso $_POST estaba vacio.

GRACIAS cluster
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 09:23.