Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/07/2004, 07:48
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No entiendo muy bien el juego que haces con javascript y tu "procesar" variable. En principio no deberías guiarte por la existencia/valor de esa variable sino de otra de tu formulario: por ejemplo de "texto" si existe o no .. por qué si existe será que has hecho el submit y si no existe es que no se ha hecho el submit.

Si tienes un script X que puede hacer N determinadas acciones:
1) un formulario
2) proceso del formulario
3) mostrar resultado

debes separar los procesos como si fuera en "scripts a parte" pero en tu caso al usarlos bajo uno mismo debes tener una variable de control que dedida en que proceso se está y que es lo que debe hacer el script.


Código PHP:
<?php

cabecera
(){
?>
<html>
<head>
</head>
</body>
<?
}

pie(){
?>
</body>
</html>
<?
}

formulario (){
// el formulario HTML
?>
<form action="<? echo $_SERVER['PHP_SELF']."?accion=procesar" ?>" method="GET">
<input type="text" name="texto">
<input type="submit" name="procesar" value="Procesar">
</form>
<?
}

swith($_GET['accion']){

case 
"procesar":
// tal vez guardarias los datos de tu formulario en una BD .. etc
header ("Location: ".$_SERVER['PHP_SELF']."?accion=resultado");
break;

case 
"resultado":
   
cabecera();
   echo 
"Esto es el resultado (aquí podrías poner tu javascript de alert()";
   
// y si quieres .. muestras el formulario
   
formulario();
   
pie();
break;

default:
   
cabecer();
   
formulario();
   
pie();

}
?>
Fijate bien el proceso y como se componen las diferentes acciones que hace el script.

Uso tres funciones para definir la "cabecera" de la página HTML y su "pie" ademas de mi formulario. Los llamo -sólo- cuando son realmente necesarios (cuando voy a mostrar alguna salida al navegador) .. si te das cuenta NO llamo ni a cabecera(), pie() .cuando estamos en el caso de "proceso" del formulario. Así mismo cuando termino el proceso "PHP" (que en tu caso no haces nada pero ya lo haras ..) redirecciono a la misma página (script) pero en otro "estado" .. en ese caso al "resultado" que es donde muestro el mensajito .. o listado .. o lo que corresponda. Con ese redireccionamiento .. si recargas la página de "resultado" que se muestra (que es el mensaje+ tu formulario ..) se han "perdido" las variables ya .. y si recargas la página sólo recargaras ese "resultado".

Esto sería el procedimiento básico de trabajo con un scritp que hace várias cosas: procesos y entradas/salidas desde/hacia el cliente.

PD: usa método POST en tus formualarios a ser posible.

Un saludo,