Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Escribir al clicar en un botón (https://www.clubdelphi.com/foros/showthread.php?t=57801)

SMTZ 27-06-2008 19:28:21

Escribir al clicar en un botón
 
Hola, estoy en mis inicios con PHP y he intentado hacer un ejemplo básico que ha de escribir una palabra al darle a un botón, pero no me ha salido. El código es el siguiente:

Código:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>Untitled Document</title>
</head>

<body>
 
 
<?php

function escribe () {

  $mensaje="prueba";
  return $mensaje;
     
}

?>

<html>

<form id="form7" name="form7" method="post" action="<?php escribe()?>">
    <div align="center">
      <input name="RegitrarmeSubmit" type="submit" class="style2" id="RegitrarmeSubmit" value="Registrarme" />
    </div>
  </form>
 
 </body>

</html>


He estado buscando información por google y he encontrado ejemplos de llamadas a funciones, pero no sé qué hago mal. Adjunto algunas de esas páginas para quien le interese, ya que veo que no soy el único novato del foro:

http://blonk.com.ar/2005/08/21/formulario-en-php/
http://www.desarrolloweb.com/articulos/312.php
http://www.ignside.net/man/php/functions.php
http://www.ignside.net/man/php/include.php
http://www.pixelartweb.com.ar/programacion.htm


Un saludo.

dec 27-06-2008 19:32:49

Hola,

Tienes que tener en cuenta que PHP se ejecuta en el servidor, no en el cliente (navegador). Esto quiere decir, entre otras cosas, que no puedes invocar desde el cliente a una función de PHP, que habría de ejecutarse en el servidor. No puedes hacerlo, al menos, directamente. De manera que habría que ver qué quieres hacer, exactamente, pero, partiendo de la base de que no puedes usar PHP en el cliente, tal como lo estás tratando de hacer. ;)

SMTZ 27-06-2008 19:52:15

Lo que intentaba
 
Hola, estoy acostumbrado a programar en Delphi e intentaba simular el evento onclick cuando le das a un botón, de hecho, lo que quería hacer es el típico formulario de registro de un usuario, es decir, le pides el correo, apodo, contraseña, etc. y si hay algún campo mal rellenado le saldrá un mensaje con el error, por ejemplo, te falta la arroba en campo email.

Había hecho un ejemplillo tonto, pero no me ha funcionado:

Código:

<?php

function comprueba_arroba($correo) {

  $posicion = strpos ( $correo, "@" );
  if ( $posicion = 0 )
  {
 
      return ( "La dirección de correo no está bien escrita" );
 
  } // if
     
} // comprueba_arroba

?>

Me he comprado un libro de php y estaba trasteando, pero por el momento no ando bien.

Gracias por la ayuda.

SMTZ 27-06-2008 19:56:59

Más
 
Por cierto, si en vez de llamar a la función desde la acción del botón hago

Código:

<?php echo escribe(); ?>
sí que escribre la palabra.


Un saludo.

SMTZ 27-06-2008 23:01:43

Solucionado
 
Hola, ya lo he conseguido. El resultado se ha de mostrar invocando otra página php capaz de coger el valor de la función. Ya voy entendiendo los conceptos después de estar quemándome la vista durante un rato.

Un saludo y gracias.

dec 27-06-2008 23:08:55

Hola,

Cita:

Por cierto, si en vez de llamar a la función desde la acción del botón hago
Pues es bien raro. ;) Tal como yo lo veo, vaya. Todavía si fuera código JavaScript... esto es lo que suele usarse para trabajar en el cliente, por ejemplo, validando datos de los formularios previo a su envío al servidor, donde habrá también que validarlos. Pero, hablamos entonces de código JavaScript, no de PHP. Pero, bueno, en cualquier caso, parece que ya has cogido la onda. :)

SMTZ 28-06-2008 07:21:53

Lo qye he hecho
 
Sí, mira, lo que he hecho ha sido llamar a una página php desde el botón:

Código:

<tr>
        <form id="QuieroRegistrarmeForm" name="QuieroRegistrarmeForm" method="post" action="reg_err.php">
        <td width="128">Correo electr&oacute;nico: </td>
        <td width="394">
            <input name="emailtextfield" type="text" id="emailtextfield" size="58" maxlength="100"/>
        </td>
      </tr>

Luego, en la página reg_err.php:

Código:

$correo = $_POST['emailtextfield'];
 
if (comprueba_arroba( $correo ) == 0 ||
    comprueba_espacio ($correo) == true
  ) {
       
  echo "La dirección de correo electronico '$correo' no esta bien escrita. Compruebe que exista el simbolo '@' y no hayan espacios en blanco.";
       
} else {
       
  echo "ok";

}

También podría haber llamado a la página principal y llamar a la función pasándole como parámetro la variable $_POST['emailtextfield'], igual que en la página a la que llamo, para que me saliera el mensaje de error en la propia página y no en una nueva.

Me está costando un poco cambiar la perspectiva de progamación, pero eso es sólo práctica. Me está gustando php por el momento. Lo único que le hecho en falta es una parte visual para añadir el diseño de la página, aunque con Dreamweaver me voy apañando. Tengo que ir retocando las secciones <form></form> pero bueno.

Muchas gracias por todo.


La franja horaria es GMT +2. Ahora son las 08:30:42.

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