Foros del Web » Programando para Internet » PHP »

Botón que ejecute código php

Estas en el tema de Botón que ejecute código php en el foro de PHP en Foros del Web. Como le hago para que un botón ejecute una función de php cuando le hago clip? Estoy intentando hacer que envíe un correo, pero cuando ...
  #1 (permalink)  
Antiguo 12/12/2012, 18:06
Avatar de felipelvrd  
Fecha de Ingreso: diciembre-2012
Mensajes: 28
Antigüedad: 11 años, 4 meses
Puntos: 0
Botón que ejecute código php

Como le hago para que un botón ejecute una función de php cuando le hago clip?
Estoy intentando hacer que envíe un correo, pero cuando cargo la pagina envía un correo en blanco, después si le doy en el botón me envía el correo con el mensaje, y si recargo la pagina vuelve a mandar el correo, yo quiero que lo mande solo cuando hacen clip en el botón, el código que tengo es este:


Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Correo</title>
</head>

<body>
<script>
function correo (){ 
	<?php
	
		mail("[email protected]","asunto",$_POST['Text1']) ;
	?>
} 
</script>


<form method="post">

  <input type="text" name="Text1"/>
  <input type="submit" value="Enviar" onclick="correo()" name="miBoton"/>

</body>

</html>
  #2 (permalink)  
Antiguo 12/12/2012, 18:19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 14
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Botón que ejecute código php

El problema es que estás mezclando instrucciones del lado del servidor con código javascript, que se ejecuta en el lado del cliente.
  #3 (permalink)  
Antiguo 12/12/2012, 18:19
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Botón que ejecute código php

Como dijo Pleyano

Prueba modificando tu codigo asi:

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
  4. <head>
  5. <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
  6. <title>Correo</title>
  7. </head>
  8.  
  9. <body>
  10.     <?php
  11.            if(isset($_POST){
  12.             mail("[email protected]","asunto",$_POST['Text1']) ;
  13.                }
  14.     ?>
  15.  
  16.  
  17.  
  18. <form method="post">
  19.  
  20.   <input type="text" name="Text1"/>
  21.   <input type="submit" value="Enviar" onclick="correo()" name="miBoton"/>
  22.  
  23. </body>
  24.  
  25. </html>


Saludos
  #4 (permalink)  
Antiguo 12/12/2012, 20:07
Avatar de felipelvrd  
Fecha de Ingreso: diciembre-2012
Mensajes: 28
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Botón que ejecute código php

bien, ya no manda el correo en blanco.
Otra cosa que no entiendo de php es como me doy cuenta en que boton hice click? como si quiero poner otro submit que haga otra acción y hacen click en él también se va a enviar el correo, como evito eso?

por que hice la prueba en poner la función php en el evento onclick pero no funciono, me dicen que eso es solo para javascritp.
  #5 (permalink)  
Antiguo 12/12/2012, 20:39
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Botón que ejecute código php

Holas,

Creo que se esta confundiendo un poco con los eventos de lado del Cliente y los eventos con el lado del servidor.

En el lado del cliente puedes por ejemplo usar funciones, eventos, etc. con javascript, y en el lado del servidor usas en este caso PHP para recibir datos que envia el cliente que en su mayoria son por $_GET o $_POST o $_REQUEST.

En el lado del cliente puedes enviar variables al servidor y segun esto puedes recibirlos y usar las condiciones para que envie el correo o realice otras acciones.


Algunos links que te podria ayudar:

http://www.desarrolloweb.com/faq/27.php
http://www.desarrolloweb.com/php/
http://www.desarrolloweb.com/articulos/318.php

Saludos,
__________________
.: Gildus :.
  #6 (permalink)  
Antiguo 12/12/2012, 21:53
Avatar de felipelvrd  
Fecha de Ingreso: diciembre-2012
Mensajes: 28
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Botón que ejecute código php

Me quedo así:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="es-cr" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Test</title>
</head>

<body>

<?php
function escribir($x){
	echo $x;
}

function msg($x){
	echo '<script> alert("' . $x . '"); </script>';
}
?>

<form method="post">
	<input name="Text1" style="width: 139px" type="text" /><br />
	<input name="Button1" type="submit" value="Escribir"  />
	&nbsp;
	<input name="Button2" type="submit" value="Mensaje" /> 
</form>

<?php

	$texto;

	if(isset($_POST['Text1']))
		$texto=$_POST['Text1'];

	if(isset($_POST["Button1"])){
	     escribir($texto);
	}

	if(isset($_POST["Button2"])){
	     msg($texto);
	}

?>

</body>

</html>
La intención era que dos botones ejecutaran funciones diferentes, parece que si esta funcionando, ahora, si recargo la pagina o doy enter, se repite la ultima acción, hay alguna forma de evitarlo? y también, así como lo hice es la forma correcta de hacerlo?
  #7 (permalink)  
Antiguo 13/12/2012, 00:45
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Botón que ejecute código php

Mejor ve a leer un manual basico de PHP y Javascript, porque sigue generando el mismo problema, desde PHP no puedes mandar a llamar funciones en Javascript y desde Javascript no puedes ejecutar código PHP, que es lo que estas haciendo! en todo caso o lo haces unicamente con Javascript o con Ajax y PHP
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 13/12/2012, 14:20
Avatar de felipelvrd  
Fecha de Ingreso: diciembre-2012
Mensajes: 28
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Botón que ejecute código php

Pero ese no es el problema, ademas ese javascript que esta en php si me esta funcionando, aunque eso es irrelevante por que lo que quiero es que dos botones hagan acciones distintas ese es solo para el ejemplo, ahora eso si esta funcionando, si hago click en escribir se escribe el texto en documento, si hago click en mensaje se muestra el mensaje, ahora lo que quiero es que no se repita la acción cuando recargo la pagina, pero ahora que estaba viendo parece que eso no es posible, lo otro es que quiero que cuando presiono enter en el cuadro de texto la pagina hace submit y no quiero que lo haga, pero creo que eso es algo del componente que estoy usando.
Y la otra pregunta era que si la forma en que estaba haciendo eso es la correcta o la que ustedes usarían para hacer algo así?
  #9 (permalink)  
Antiguo 13/12/2012, 14:23
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Botón que ejecute código php

haciendo verificaciones y/o limpia post con unset

unset($_POST);

al final del script asi al recargar no se ejecutara nada enviamos/mostramos/eliminamos

Última edición por webankenovi; 13/12/2012 a las 14:29
  #10 (permalink)  
Antiguo 13/12/2012, 14:39
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Botón que ejecute código php

Holas,

Siempre va ha suceder el submit ya que esos datos lo tiene el navegador, a menos puedas usar jquery para tratarlo todo con jquery y ajax.

Por ejemplo podrias enviar el resultado a otro archivo y alli procesar lo que deseas. Sobre el presionado del enter en el input podrias usar el onsumbit del form:

Código HTML:
Ver original
  1. function hacerSubmit(form){
  2.     if(form.algo.value.length>0){
  3.         return true;
  4.     }
  5.     return false;
  6. }
  7.  
  8. <form method="post" onsubmit="return hacerSubmit(this);" >
  9.     <input type="text" value="" name="algo"  />
  10.     <input type="submit" value="IR"/>
  11. </form>


Saludos,
__________________
.: Gildus :.
  #11 (permalink)  
Antiguo 13/12/2012, 14:49
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Botón que ejecute código php

Cita:
Iniciado por gildus Ver Mensaje
Holas,

Siempre va ha suceder el submit ya que esos datos lo tiene el navegador
es cierto me he equivocado .

tambien puedes hacer como te dice gildus mandar el resultado a otro archivo lo procesas y ademas ( rediriges a la pagina anterior ) .

Etiquetas: funciones, botones
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:11.