Ver Mensaje Individual
  #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
Reputación: 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