Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Como puedo crear un formulario con varios botones y que cada boton ejecute un programa php
Enviado por principiantePHP el día 14 de junio de 2003
saludos.
Estoy creando una serie de scripts para las tareas basicas de crear, modificar y borrar registros... hasta ahora tengo cada programa por separado y queria crear un solo formulario y debajo una serie de botones que me llamen o ejecuten cada programa, para manipular los datos que se muestran en el formulario.¿Como puedo hacer esto? no puedo con varios input type=submit ¿cierto?
gracias.
Re: Como puedo crear un formulario con varios botones y que cada boton ejecute un programa
Enviado por Omar Col el día 17 de junio de 2003
Me parece que es un poco mas lo que necesitas lo siguiente:
En cualquier parte del archivo donde esta el formulario defines un script que haga dinamico el direccionamiento del evento a disparar, algo asi:
<script>
function nombre_funcion(proceso,formul)
{
var x=esc(formul.nombre_variable_formulario.value);
... tantas variables como vayas a pasar por la URL;
// lo que sigue es lo importante
location=proceso+'?nombre_variable='+x+'&otra_variable='+valor_otra_variable;
}</script>
Claros hasta ahi ??
Ahora en el formulario:
<form name='nombre_formulario'>
<input type ... nombre de la variables a pasar>
<input type=... otra variable a pasar>
<--! OJO AQUI
<input type=button value=... name=... onclick=nombre_funcion('PROCESO.PHP',this.form)>
<input type=button value=... name=...
onclick=nombre_funcion('OTRO_PROCESO.PHP',this.form>
</form>
nombre_funcion=el que quiera (debe ser el mismo en el script y en el formulario)
proceso.php y otro_proceso.php son los php que va invocar en cada onclick diferente.
La verdad, si me entiende y lo escribe correctamente, funciona, este metodo lo utilizo en todo lo que hago.
Ahora si no me entiende, envieme un mail y le explico mas detalladamente.
///*****************
function ultimoregistro($tablename)
{
global $conexion;
global $tablename;
// preparacion y ejecucion de la consulta
$cadsql="select * from autonum where tabla='$tablename'";
$cursorautonum= mysql_query($cadsql, $conexion);
// obteniendo el numero de filas del cursor
$num_filas=mysql_num_rows($cursorautonum);
// obteniendo el numero de campos(atributos o columnas) del cursor
$num_campos=mysql_num_fields($cursorautonum);
// recorrido del cursor y obtenemos la siguiente fila que nos interesa
while($lista=mysql_fetch_array($cursorautonum))
{
$ultreg=$lista['numero'];
$ultreg=$ultreg+1;
}
return $ultreg;
}
//********************/
function guardar()
{
global $conexion,$hddaccion,$caja;
global $tablename,$formularionombre;
global $txtcodigo,$txtarea;
// si el area es NUEVO
$ultreg= ultimoregistro("area");
$cadactautonum="update autonum set numero=$ultreg where tabla='$tablename'";
$cursorautonum=mysql_query($cadactautonum);
$cadacttabla="insert into $tablename(codigo,descripcion) values($ultreg,'$txtarea')";
echo $cadacttabla;
$cursortabla=mysql_query($cadacttabla);
}
function agregarfilagrid()
{
global $conexion;
global $caja;
$cadsql_consulta = "select codigo, descripcion from area;";
$cursor_consulta = mysql_query($cadsql_consulta);
while ($row = mysql_fetch_array($cursor_consulta))
{
echo "<tr onclick='javascript: Marca(this, ".$row["codigo"].", \"".$row["descripcion"]."\")'> \n";
echo "<td><input type='hidden'>".$row["codigo"]."</td>\n";
echo "<td>".$row["descripcion"]."</td> \n";
echo "</tr> \n";
}
}
function actualizar()
{
global $conexion,$hddaccion,$caja;
global $tablename,$formularionombre;
global $txtcodigo,$txtarea;
// si el area es modificada
$cad_modificatabla="update $tablename set descripcion='$txtarea' where codigo=$txtcodigo";
echo $cad_modificatabla;
$cursor_modificatabla=mysql_query($cad_modificatabla);
}
function borrar()
{
global $conexion,$hddaccion,$caja;
global $tablename,$formularionombre;
global $txtcodigo,$txtarea;
$cad_eliminaregistro = "delete from $tablename where codigo=$txtcodigo and descripcion='$txtarea'";
$cursor_eliminaregistro = mysql_query($cad_eliminaregistro);
}
?>
<html>
<head>
<title>ISIGROUP - CONFIGURACION - AREAS DE LA EMPRESA</title>
<link href='isigroup.css' rel='stylesheet' text='text/css'>
<script language="Javascript">
<!--
var IE4 = (document.all) ? true : false;
var lineaMarcada = "";
function CCA(CB)
{
if (CB.checked)
hL(CB);
else
dL(CB);
}
function hL(E)
{
if (IE4)
while (E.tagName!="TR") {E=E.parentElement;}
else
while (E.tagName!="TR") {E=E.parentNode;}
E.className = "H";
}
function dL(E)
{
if (IE4)
while (E.tagName!="TR") {E=E.parentElement;}
else
while (E.tagName!="TR") {E=E.parentNode;}
E.className = "";
}
function grabar()
{
var lcarea;
window.document.formulario_area.hddaccion.value="grabar";
lcarea=window.document.formulario_area.txtarea.value;
lccadena=lcarea.length;
if (lccadena==0)
{
alert("Debe de Ingresar el nombre del area");
}
else
{
enviar();
}
}
function enviar()
{
var respuesta=confirm("Acepta sus Datos");
if(respuesta==true)
{
window.document.formulario_area.submit();
}
}
function modificar()
{
window.document.formulario_area.hddaccion.value="modificar";
lcarea=window.document.formulario_area.txtarea.value;
lccadena=lcarea.length;
if (lccadena==0)
{
alert("Debe de Ingresar el nombre del area de la empresa");
}
else
{
if(confirm(" ¿ Realmente desea modificar los datos ? "))
window.document.formulario_area.submit();
}
}
Re: Como puedo crear un formulario con varios botones y que cada boton ejecute un programa
Enviado por DiegoSolo el día 8 de mayo de 2004
Es un quilombo, no entendí nada de lo anterior, pero la mejor forma es hacer varios submits. La idea es que si necesitás que todos los valores del formulario vayan a la página siguiente, no tesirve que hagas varios formularios diferentes. Entonces lo que tenés que hacer es definir tantos submits como necesites en el mismo form, así:
echo "<input type=submit value=\"Ir a página 1\" name=pagina1>";
echo "<input type=submit value=\"Ir a página 2\" name=pagina2>";
echo "<input type=submit value=\"Ir a página 3\" name=pagina3>";
Entonces, en el formulario que recibe la variable $_POST identificás qué botón se apretó de acuerdo al nombre que tengas, por ej:
if ($_POST["pagina1"])
{
//Ejecutar Página 1
}
if ($_POST["pagina2"])
{
//Ejecutar Página 2
}
if ($_POST["pagina3"])
{
//Ejecutar Página 3
}
Bueno... ahí tienen, creo que es la forma más fácil y la mejor. Espero les sirva, suerte...
Re: Re: Como puedo crear un formulario con varios botones y que cada boton ejecute un prog
Enviado por victor el día 13 de febrero de 2006
Estaba buscando información sobre el tema que se esta tratando en este topic y quiero agradecerte por dar la mejor solución al problema expuesto, la verdad no puedo entender a varias personas que intentan ayudar pero al final complican mas las cosas metiendo java script o definiendo funciones para algo tan simple, quizas solo buscan demostrar mayor conocimiento en la programación y prefieren copiar y pegar un código en vez de explicarlo. A mi personalme se me resolvio el problema y puedo seguir programando mi pequeño sistema, Gracias.
Re: Re: Re: Como puedo crear un formulario con varios botones y que cada boton ejecute un
Enviado por Marco Duarez el día 18 de marzo de 2008
Considero que es importante empezar por lo más básico, pero eso no significa de que nos conformemos con quedarnos allí, inmersos en ese nivel. Si se ha hecho un script de cliente como javacript es para utilizarlo también. No pretendamos hacerlo todo con php. Pues a simple vista parece muy engorroso pero tiene su porqué. Si uno mismo trabaja sólo con PHP lo que está ignorando es que está agregando al servidor tareas que fácilmente pueden realizarse desde el cliente, como por ejemplo validaciones, una verificación del formato de datos a ingresar, impresión de la fecha y hora del cliente, dibujo de botones, etc, etc. Es cierto que éstas cosas se pueden hacer con PHP, pero lo que no es correcto es que tareas sencillas que deberían ser realizadas por el cliente sean efectuadas por el servidor, para eso existen otras herramientas como el javascript.
Para ello entonces es importante también INVESTIGAR y conforme vaya avanzando en el nivel de programación ir encontrando que es lo que me quiere decir la persona que me está tratando de ayudar y no reprocharle la ignorancia propia que se tiene.
Así que recomiendo que también usen Javascript en sus programas de PHP