Foros del Web » Programando para Internet » PHP »

Evento onlick de un boton, funcion con window.alert...

Estas en el tema de Evento onlick de un boton, funcion con window.alert... en el foro de PHP en Foros del Web. Hola a todos, a ver si me se explicar, estoy intentando hacer una tabla donde se va a rellenar con un listado de cosas que ...
  #1 (permalink)  
Antiguo 05/05/2007, 06:06
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Evento onlick de un boton, funcion con window.alert...

Hola a todos, a ver si me se explicar, estoy intentando hacer una tabla donde se va a rellenar con un listado de cosas que tengo en la base de datos... Hasta aqui todo bien, el problema es que en la ultima celda de ese producto quiero añadir un botón:

Código PHP:
while($datos=mysql_fetch_assoc($resultado)){
    echo "<tr><td><a href = ./detalle.php?id=".$datos["codigo"]." target=mainFrame>".$datos["nombre"]."</td><td>".$datos["marca"]."</td><td>".$datos["precio"]."</td><td>".$datos["stock"]."</td>";             
    echo "<td><input name='pedido' type='button' lang='es Spanish (Spain)' value='Pedir 5' onclick='".Actualizar($datos["codigo"], $datos["stock"])."'></td></tr>";
 }
 
?>
</table>
<?
}
Con el codigo anterior relleno la tabla y creo el botón, todo bien, el problema viene con el onlick, quiero que llame a una función en php Actualizar:

Código PHP:
function Actualizar($cod$sto){
  
$stock_actual $sto 5;
  
$update "update producto set stock = '".$stock_actual."' where codigo ='".$cod."' ";
  
$res_update mysql_query($update);
  echo 
"<script>window.alert('Se ha actualizado correctamente')</script>";

Que se encargue de hacer la actualización y mostrar un mensaje. El problema radica en que la función se ejecuta cuando hago click en otro sitio, no en el botoón, ¿cómo lo podría arreglar?

Gracias,
  #2 (permalink)  
Antiguo 05/05/2007, 10:07
 
Fecha de Ingreso: agosto-2005
Ubicación: Valencia
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 1
Re: Evento onlick de un boton, funcion con window.alert...

Hola, en primer lugar no puedes llamar a una función PHP desde JavaScript sin usar un vehículo para ello. Ese vehículo es AJAX, pero eso es otra historia.

Lo que debes hacer es lo siguiente, para llamar a la funcion cuando pulses el boton deberás crear un formulario especifico para cada producto, le das un nombre comun y le añades mediante PHP el id del producto, asai tendrás un nombre único para tu formulario: name="formPedidos_2345".

Luego añades un campo tipo oculto para almacenar y enviar el id del producto para poder manejarlo: <input type='hidden' name='id_producto' value='".$id_producto."' />

Luego el boton llamará a la funcion Submit de javascript:

<input name='pedido' type='button' lang='es Spanish (Spain)' value='Pedir 5' onclick='document.formPedidos_".$id.".Submit()])'/>

Esto lo que hace es mandar el valor del campo oculto, con el id del producto cuando el usuario pulse en el botón del producto.

Código PHP:

...
...
while(
$datos=mysql_fetch_assoc($resultado)){ 
    echo 
"<form name="formPedidos_id" method="POST" action="actualizar.php"><tr><td><a href = ./detalle.php?id=".$datos["codigo"]." target=mainFrame>".$datos["nombre"]."</td><td>".$datos["marca"]."</td><td>".$datos["precio"]."</td><td>".$datos["stock"]."</td>";              
    echo 
"<td>
<input type='hidden' name='id_producto' value='$id_producto' />
<input name='pedido' type='button' lang='es Spanish (Spain)' value='Pedir 5' onclick='document.formPedidos_$id.Submit()])." 
/></td></tr></form>"; 
 } 

Luego hay que recoger y procesar esto:

Código PHP:
function Actualizar($cod$sto){ 
  
$stock_actual $sto 5
  
$update "update producto set stock = '".$stock_actual."' where codigo ='".$cod."' "
  
$res_update mysql_query($update); 
  echo 
"<script>window.alert('Se ha actualizado correctamente')</script>"
}

Actualizar($_POST['id_producto']); //Llamada a tu función 
Ahora le podrias pasar todos los parámetros que quisieras. Tendras que hacer una rutina para volver atras, o bien usando el header() o otros métodos para volver al volcado de la BD.

Suerte
__________________
Quien a buen árbol se arrima, buena sombra le cobija. :aplauso:

http://dbtrucos.com
  #3 (permalink)  
Antiguo 05/05/2007, 10:33
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Evento onlick de un boton, funcion con window.alert...

Voy a intentarlo... Varias dudas que me surgen... ¿Que es el archivo action="actualizar.php" tendre que crearlo? Cuando dices que tengo que crear un nuevo formulario name="formPedidos_id" tendre que poner el identificador del producto asi: name='formPedidos_'".$datos["codigo"]."' no?

PD: en el onclick='document.formPedidos_".$datos["codigo"].".Submit()]) a que te refieres con el ] ??
  #4 (permalink)  
Antiguo 05/05/2007, 10:41
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Evento onlick de un boton, funcion con window.alert...

Después de hacer mas o menos lo que me has dicho, ha quedado asi:

Código PHP:
while($datos=mysql_fetch_assoc($resultado)){
    echo 
"<form name='formPedidos_'".$datos["codigo"]."' method='POST' action='actualizar.php'><tr><td><a href = ./detalle.php?id=".$datos["codigo"]." target=mainFrame>".$datos["nombre"]."</td><td>".$datos["marca"]."</td><td>".$datos["precio"]."</td><td>".$datos["stock"]."</td>";             
    echo 
"<td><input type='hidden' name='id_producto' value='".$datos["codigo"]."' /><input name='pedido' type='button' lang='es Spanish (Spain)' value='Pedir 5' onclick='document.formPedidos_".$datos["codigo"].".Submit()' /></td></tr></form>";
 } 
Pero sigue sin saltarme cuando le doy al botón.
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 19:30.