Foros del Web » Programando para Internet » PHP »

Llamar a método desde el onclick

Estas en el tema de Llamar a método desde el onclick en el foro de PHP en Foros del Web. Hola, ¿Es posible llamar a un método de un objeto de una clase desde el evento onclick de un botón de un html? Me gustaría ...
  #1 (permalink)  
Antiguo 14/06/2013, 10:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Llamar a método desde el onclick

Hola,

¿Es posible llamar a un método de un objeto de una clase desde el evento onclick de un botón de un html?

Me gustaría cambiar esto que tengo:

Código:
<input id="identifier" type="submit" onclick = "this.form.action = 'page.php'" value="foo" />
Saludos.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #2 (permalink)  
Antiguo 14/06/2013, 10:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Llamar a método desde el onclick

Esa pregunta la respondio GatorV ayer....... :P

Las UNICAS formas de pasar informacion de un evento de JS a PHP son:

1) Redireccionar con JS enviando la informacion por GET
2) Haciendo un SUBMIT del formulario
3) Por medio de AJAX
__________________
Salu2!
  #3 (permalink)  
Antiguo 14/06/2013, 11:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Llamar a método desde el onclick

Muchas gracias!
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #4 (permalink)  
Antiguo 16/06/2013, 07:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Llamar a método desde el onclick

¿Me podrías poner un ejemplo? Me estoy liando un poco...
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #5 (permalink)  
Antiguo 16/06/2013, 09:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Llamar a método desde el onclick

Prueba:
1) Redireccionar con JS enviando la informacion por GET
2) Haciendo un SUBMIT del formulario
3) Por medio de AJAX

..supongo que conoces el método.



Como mínimo, deberías postear tus intentos para entender por qué dices que te estás "liando".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 17/06/2013, 07:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Llamar a método desde el onclick

Hola,

Al final lo he hecho así, de las tres opciones que me has puesto, ¿cuál sería lo que he hecho? (pienso que es la segunda ya que ni uso JavaScript ni AJAX pero tengo dudas porque aunque recupero el valor mediante $_GET en el fichero php en el html tengo method="post", es una especie de formulario híbrido POST y GET y esto me desconcierta un poco).

En el html:
Código:
		<form name="formulario" method="post"> 
			<label>dummy 1</label>
			<input maxlength="64" id="dummy_1" name="dummy_1" type="text" value="1.0" />
			<label>dummy 2</label>
			<input maxlength="64" id="dummy_2" name="dummy_2" type="text" value="3600.0" />
			<input id="dummy_button_1" type="submit" onclick = "this.form.action = 'file.php?method_name=run_1'" value="dummy button 1" />
			<input id="dummy_button_2" type="submit" onclick = "this.form.action = 'file.php?method_name=run_2'" value="dummy button 2" />
		</form>
En file.php:
Código:
$methodName = $_GET["func_name"];

if ("run_1" == $methodName)
{
	$myObject->run_1();
}
else if ("run_2" == $methodName)
{
	$myObject->run_2();
}
Gracias.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Última edición por letni; 17/06/2013 a las 07:42
  #7 (permalink)  
Antiguo 17/06/2013, 10:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Llamar a método desde el onclick

El usar onclick + this.form.action es Javascript, y sí estas usando un post y un GET al mismo tiempo, lo cual si bien no pasa nada hay webservers que no funciona bien (IIS) por lo que mejor usa JS para establecer el valor de un campo hidden y pasarlo por POST como parte de tu formulario normal...
  #8 (permalink)  
Antiguo 17/06/2013, 10:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Llamar a método desde el onclick

Hola,

Si no te he entendido mal y hago eso que dices no podría diferenciar a qué botón se pulsó, ya que el contenido del campo oculto se enviaría en el caso de que se pulsara el botón 1 y también en el caso de que se pulsara el botón 2, con lo que no me valdría porque luego no podría discriminar en el fichero php.

A no ser que al pulsar en un botón se limpiara el contenido de uno de los campos ocultos. ¿Te referías a eso?
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #9 (permalink)  
Antiguo 17/06/2013, 10:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Llamar a método desde el onclick

No, simplemente a que establecieras el valor del campo oculto, y sí puedes discriminar, mira un ejemplo sencillo (usando jQuery):
Código HTML:
Ver original
  1. <form method="POST"  action="foo.php" id="form">
  2.    <input type="hidden" name="action" id="action" value="">
  3.    <button id="action1">Acción 1</button>
  4.    <button id="action2">Acción 2</button>
  5. </form>
  6.  
  7. <script type="text/javascript">
  8. $(document).ready(function() {
  9.         $('#action1').on('click', function() {
  10.               $('#action').val('foo');
  11.               $('#form').submit();
  12.         });
  13.         $('#action2').on('click', function() {
  14.               $('#action').val('bar');
  15.               $('#form').submit();
  16.         });
  17. });

En PHP:
Código PHP:
Ver original
  1. // Checas que sea POST y que tenga action
  2.  
  3. switch($_POST['action']) {
  4.         case 'foo': foo(); break;
  5.          case 'bar': bar(); break;
  6. }

Saludos.

Etiquetas: html, onclick
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 11:11.