Foros del Web » Programando para Internet » PHP »

Botones con eventos

Estas en el tema de Botones con eventos en el foro de PHP en Foros del Web. Buenas!!! Estoy intentando hacer un boton HTML con un evento que llame a una funcion php en otro archivo php. Pongo el codigo aqui a ...
  #1 (permalink)  
Antiguo 14/05/2007, 05:55
 
Fecha de Ingreso: diciembre-2006
Mensajes: 50
Antigüedad: 17 años, 4 meses
Puntos: 1
Botones con eventos

Buenas!!!

Estoy intentando hacer un boton HTML con un evento que llame a una funcion php en otro archivo php.
Pongo el codigo aqui a ver si sabeis que estoy haciendo mal.

CODIGO DEL ARCHIVO "PRUEBA.PHP"

<html>
<head>
<title>PRUEBA</title>
</head>
<body>
<?php
include('Funciones.php');
?>
<FORM name="prueba">
<TABLE>
<TR>
<TD width = 200 align = "left">
<BUTTON NAME="altas" onclick= <?php $texto=Insercion_cli();?> >
ALTAS
</BUTTON>
<?php
echo $texto;
$texto = "";
?>
</TD>
</TR>
</TABLE>
</FORM>
</body>
</html>

CODIGO DEL ARCHIVO "Funciones.php"

<?php
function Insercion_cli()
{
$resultado = "PRUEBA CORRECTA";
return $resultado;
}
?>

El problema esta que no deberia mostrar el texto de la variable $texto hasta que no se pulse el boton, pero me lo escribe siempre, antes de pulsar nada, entiendo que el problema esta en el evento onclick, que no lo esta haciendo bien.
Bueno a ver si vosotros dais con el fallo.

MUCHAS GRACIAS!!!
  #2 (permalink)  
Antiguo 14/05/2007, 07:44
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Botones con eventos

El problema esta en que lo que quieres hacer no es posible, puesto que php se ejecuta del lado del servidor y javascript del lado del cliente. Entonces cuando el servidor va "procesando" tu página y encuentra tu función php la ejecuta sin tomar en cuenta tu onClick.

Tendrias que plantear nuevamente tu problema. ¿Qué es lo que estas tratando de hacer?

Saludillos.
  #3 (permalink)  
Antiguo 14/05/2007, 08:22
 
Fecha de Ingreso: diciembre-2006
Mensajes: 50
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Botones con eventos

Bueno no entiendo muy bien lo que me dices, pero lo que pretendo hacer es que cuando pulse un boton me ejecute una insercion en la base de datos con los datos que tengo en unos textbox, lo que pasa es que lo e simplificado, para probar, si no me funciona con un mensaje , con una insercion tampoco.
No se como manejar los eventos, pues el codigo se ejecuta todo seguido, por lo que un insert solo se tiene que ejecutar cuando se pulse un boton, como puedo hacer esto?? si no me valen los eventos del boton HTML, es posible crear un boton con php de tal manera que el evento si se ejecute??

Mi codigo completo es el siguiente.

<html>
<head>
<title>Alta Clientes</title>
</head>
<body>

<?php
include('Funciones.php');
$link=Conectarse();
?>

<FORM name="Altas">
<TABLE>
<TR>
<TD>
<p>Cod Cliente: </p>
</TD>
<TD>
<?php
$cod_cliente = mysql_query("SELECT MAX(cod_cliente) cod_cliente FROM CLIENTES", $link) or die ("Invalid query");
$resultado = mysql_fetch_array($cod_cliente);
$num = $resultado["cod_cliente"];
$num = $num + 1;
print '<input type="text" name="cod_cliente" size="4" value = '.$num.' DISABLED>';
?>
</TD>
</TR>
<TR>
<TD>
<p>Nombre: </p>
</TD>
<TD>
<input type="text" name="nombre" size="15" onChange = <?php $nombre=$_GET['nombre']?> >
</TD>
</TR>
<TR>
<TD>
<p>Apellidos: </p>
</TD>
<TD>
<input type="text" name="apellidos" size="50" onChange = <?php $apellidos=$_GET['apellidos']?> >
</TD>
</TR>
<TR>
<TD>
<p>Direccion: </p>
</TD>
<TD>
<input type="text" name="direccion" size="50" onChange = <?php $direccion=$_GET['direccion']?> >
</TD>
</TR>
<TR>
<TD>
<p>Telefono: </p>
</TD>
<TD>
<input type="text" name="telefono" size="10" onChange = <?php $telefono=$_GET['telefono']?> >
</TD>
</TR>
<TR>
<TD>
<p>Movil: </p>
</TD>
<TD>
<input type="text" name="movil" size="10" onChange = <?php $movil=$_GET['movil']?> >
</TD>
</TR>
</TABLE>
<TABLE>
<TR HEIGHT = 50>
<TD>
</TD>
</TR>
<TR>
<TD width = 200 align = "left">
<BUTTON NAME="altas" onclick = <?php Insercion_cli(); ?> >
ALTAS
</BUTTON>
</TD>
<TD width = 200 align = "right">
<BUTTON NAME="cancelar">
CANCELAR
</BUTTON>
</TD>
</TR>
</TABLE>
</FORM>
<?php
Desconectarse($link);
echo "Desconexion de la Base de datos Conseguida";
?>
</body>
</html>

CODIGO DE Funciones.php

<?php

function Conectarse()
{
if (!($link=mysql_connect("localhost","","")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("QKALOS_BD",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

function Desconectarse($link)
{
mysql_close($link) ;
}

function Insercion_cli()
{
mysql_query("insert into clientes (cod_cliente,nombre,apellidos,direccion,telefono,m ovil) values ('$num','$nombre','$apellidos','$direccion','$tele fono','$movil')");

}

function Cancelar_cli()
{

}

?>

Otra pregunta por lo que me dices no entiendo por que si que me funcina el evento onChange del textbox para recuperar los datos??

MUCHAS GRACIAS!!!!
  #4 (permalink)  
Antiguo 14/05/2007, 09:04
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Botones con eventos

mmm creo que eres un nuevo en esta asunto de php

Lo que pasa es que en tu etiqueta <form> tienes que poner un action, es decir la pagina que se va encargar de almacenar la info, y agregar un input de tipo submit ,en este caso seria:

<form action="<?php $PHP_SELF; ?>"


<input type="submit" name="enviar" value="enviar">
</form>

Entoncs cuando presiones el boton se enviar, la info se enviara a la página que hayas definido en tu action.

Aunque yo te recomendaria que por el momento la inserción lo hicieras en otra script php para que te sea más fácil comprender el proceso.

Saludillos.
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 07:42.