Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2009, 04:32
Avatar de karlic0s
karlic0s
 
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 18 años
Puntos: 18
Problemas al validar un formulario mediante javascript en php

Tengo este código:

Código HTML:
Envia.php

<script>
function valida_envia(){
    //valido el nombre
    if (document.fvalida.nombre.value.length==0){
       alert("Tiene que escribir su nombre")
       document.fvalida.nombre.focus()
    return 0;
    }
} 

</script>

<form name="fvalida" action="publica2.php" method="post">
<input name="nombre" type="text" class="descrip">

<input class="publicar" type="submit" value="Siguiente" onclick="valida_envia()">

</form> 
Bien, mi problema es que mi pagina es .php, cuando envio el formulario la pagina digamos que se actualiza de http://localhost/mipagina/envia.php a http://localhost/mipagina/envia.php?...up3=no&nombre=... y el php que habia en mi web antes (que habia pasado unas variables mediante post) da error, debido a que ha perdido esas variables a actualizar la pagina, estoy buscando la manera de hacerlo sin perder esas variables por la actualización de la página y tambien estoy buscando que la barra de deriecciones no se llene de los campos y valores de mi formulario, ya que es un formulario bastante grande.

Hay alguna posibilidad de hacerlo?

Estuve mirando en un post anterior y vi que se solucionaba cambiando el return 0 por return true, he probado a hacerlo, hasta con false y nada...

EDITO:

He hecho un progreso y es cambiar <input class="publicar" type="submit" value="Siguiente" onclick="valida_envia()"> por type=button, ahora no se me actualiza pero funciona, pero no se como hacer que se envie si esta bien, probé en la función javascript a poner: if...codigo previo... else this.fvalida.submit();



EDITO Y RESUELVO QUE LO HE SOLUCIONADO (lo dejo para futuras búsquedas)
Código HTML:
<script>

function valida_envia(){
    //valido el nombre
    if (document.fvalida.nombre.value.length==0){
       alert("Tiene que escribir su nombre")
       document.fvalida.nombre.focus()
    return (false);
    }else{
 document.fvalida.submit(); } 




} 

</script>


<form name="fvalida" action="publica2.php" method="post">
<input name="nombre" type="text" class="descrip">

<input class="publicar" type="[B]button[/B]" value="Siguiente" onclick="valida_envia()">

</form> 

Última edición por karlic0s; 23/09/2009 a las 05:00