Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-04-2009
martita martita is offline
No confirmado
 
Registrado: jun 2005
Posts: 146
Poder: 0
martita Va por buen camino
Red face boton no hace nada al pulsarlo

hola foro, tengo el siguiente codigo que la idea
es que al pulsar el boton haga algo(llamar a una funcion)
para poder validar que se pulso el boton, pero ni la funcion
onclick=funcion() se va a la funcion ni tampoco me valida con el

if $_post["var"]

aqui el codigo, espero alguien me pueda apoyar con esto

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 "[url]http://www.w3.org/TR/html4/loose.dtd[/url]">
<html>
<head>
<title>ejemplo de formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
  
<body>
<?PHP
function verifica()
{
echo 
"si entre";
echo 
$mail;
}
?>
<table width="505" border="1">
  <tr>
    <td width="80">nombre</td>
    <td width="333"><form name="form2" method="post" action="">
      <input name="nombre" type="text" id="nombre" value="" size="55" maxlength="50">    
        </form></td>
    <td width="28">&nbsp;</td>
  </tr>
  <tr>
    <td>email</td>
    <td><form name="form3" method="post" action="">
      <input name="email" type="text" id="email" size="55" maxlength="50">
    </form></td>
    <td><form name="form1" method="post" action="">
      <input type="submit" name="enviar" ) id="var" value="Enviar" onclick=verifica() >
       </form>
    </table> 
   
   
     <td>&nbsp;</td>
    <td>&nbsp;</td>
<?PHP
if ($_POST["var"]) 
{
echo 
"si valido el post";
}
?>
</p>
</body>
</html>

Última edición por dec fecha: 02-04-2009 a las 09:52:03. Razón: Poner la etiqueta PHP
Responder Con Cita
  #2  
Antiguo 02-04-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
martita:

Hay dos cosas que tienes que entender antes de iniciarte en el mundo de php:

1. PHP y javascript son dos lenguajes distintos
2. PHP y HTML (incluido javascript) viven en dos espacios diferentes.

El punto 1 ya te lo aclaró dec en otro hilo, así que enfaticemos el punto 2.

PHP es un lenguaje que se ejecuta en el servidor Web y te sirve para producir un documento HTML que el servidor manda al cliente (típicamente, el navegador). Cuando el documento llega a su destino, PHP ya no tiene nada que hacer y es imposible interactuar con él, no puedes hacer llamadas a funciones definidas en PHP, simplemente porque ya no están ahí.

Por poner un ejemplo sencillo, considera este script PHP:

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-1'>
<meta name='generator' content='editplus'>
<meta name='author' content='román'>

<title> Prueba </title>
</head>
<body>
<?php

    
echo "Este texto fue generado con PHP";

?>
</body>
</html>
Cuando el servidor Web recibe la petición por parte del cliente (el navegador) de este script, lo turna a su vez al procesador de PHP (que es un módulo del servidor) para su interpretación. Este procesador genera un documento HTML basado en el código HTML que tenga el script y en las instrucciones de PHP -todo lo que esté entre <?php y ?>.

Así, por ejemplo, cuando llega a

Código PHP:
<?php

    
echo "Este texto fue generado con PHP";

?>
el procesador PHP ejecuta la instrucción y coloca la salida en el mismo documento. El resultado final es:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-1'>
<meta name='generator' content='editplus'>
<meta name='author' content='román'>

<title> Prueba </title>
</head>
<body>
Este texto fue generado con PHP
</body>
</html>
Y este documento es el que el servidor Web finalmente envia al cliente, tal y como si lo hubieras escrito directamente así.

Entonces, cuando el documento llega al navegador, ya no tiene ni rastro de PHP y por ello no es posible hacer algo como

Código:
<input type="submit" name="enviar"  id="var" value="Enviar" onclick=verifica() >
porque esto ya es HTML que "vive" en el cliente. La instrucción onclick sólo puede hacer referencia a una función de algún lenguaje que se ejecute en el cliente (como javascript).

En resumen, y para reiterar: el código PHP y el documento final HTML viven en dos mundos distintos y no pueden interactuar directamente.

-------------------------------

Entonces, regresando al motivo de tu hilo: "boton no hace nada al pulsarlo", espero que ahora quede más claro porqué no hace nada. De hecho no sólo no hace nada sino que, además, marca un error, porque la función verifica no existe; existió en el servidor cuando se estaba procesando el script, pero ya no cuando el documento final llegó al navegador.

Más aún, ese onclick no es necesario; se trata de un elemento <input type='submit'> que con sólo presionarlo ocasiona que los datos del formulario se envíen al servidor sin codificar nada aparte.

Ahora, el nombre de ese botón es "enviar", y por tanto, cuando pones

Código PHP:
<?PHP
if ($_POST["var"])
{
   echo 
"si valido el post";
}
?>
no pasa nada cuando la petición llega al servidor, porque la variale 'var' no existe. No es lo mismo name que id. ides un atributo que sólo tiene sentido del lado del cliente.

// Saludos
Responder Con Cita
  #3  
Antiguo 06-04-2009
martita martita is offline
No confirmado
 
Registrado: jun 2005
Posts: 146
Poder: 0
martita Va por buen camino
Red face entendido

Gracias roman por tu respuesta, me sirvio de mucho entender lo que comentas, ahora la pregunta es tonz como puedo hacer un boton y que al pulsarlo ejecute una funcion mi formulario web ?
saludos.
Responder Con Cita
  #4  
Antiguo 08-04-2009
subzero subzero is offline
No confirmado
 
Registrado: ene 2004
Ubicación: Móntería - Córdoba - Colombia
Posts: 289
Poder: 0
subzero Va por buen camino
Hola... te recomiendo que te documentes un poco sobre java así como te dice roman. Sin embargo voy a tratar de explicarte un poquito la idea.

1. Debes crear una funcion en java que realice las validaciones que deseas.
2. Esta funcion debes ubicarla para mayaro facilidad en la cabecera <head>
Código PHP:
</headentre 
<script>
function 
myfuncion()
{
 ....
 ....
}
</script> 
3. Ya en el botón, ve al evento OnClick="myfuncion()";


Un poco resumido lo que te explicaban arriba.

PHP hace envios al servidor y trae datos desde allá recargandose la pagina las veces que sea realizado.

Java hace procesos desde la misma pagina sin necesidad de recargarse.

Espero te sirva esta aclaración y mucha suerte!
Responder Con Cita
  #5  
Antiguo 08-04-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Nada más por afinar un par de puntos:

1. No es Java sino JavaScript, que, además del nombre, no tienen ninguna similitud.
2. PHP no envía datos al servidor, PHP trabaja en el servidor.

// Saludos
Responder Con Cita
  #6  
Antiguo 08-04-2009
subzero subzero is offline
No confirmado
 
Registrado: ene 2004
Ubicación: Móntería - Córdoba - Colombia
Posts: 289
Poder: 0
subzero Va por buen camino
roman.... gracias por tu correción.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Servicio iniciado pero no hace nada NasgulMA API de Windows 6 30-12-2008 18:24:42
El codigo no hace nada jorgegetafe Varios 5 02-11-2007 14:13:49
Filter no hace nada ilichhernandez Conexión con bases de datos 8 16-05-2007 09:08:24
El reporte no hace nada ilichhernandez Impresión 1 15-03-2007 22:26:20
Al dar doble click a mi aplicacion de delphi con paradox no hace nada gaescoto Tablas planas 3 23-05-2003 09:44:35


La franja horaria es GMT +2. Ahora son las 19:49:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi