Foros del Web » Programando para Internet » Javascript »

Problema con formulario generado en php y script de validacion en js

Estas en el tema de Problema con formulario generado en php y script de validacion en js en el foro de Javascript en Foros del Web. Saludos!!!! Una vez mas, me dirijo ante ustedes en busca de una luz en medio de la oscuridad =( No estoy muy seguro donde se ...
  #1 (permalink)  
Antiguo 25/07/2008, 15:01
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Problema con formulario generado en php y script de validacion en js

Saludos!!!!

Una vez mas, me dirijo ante ustedes en busca de una luz en medio de la oscuridad =(

No estoy muy seguro donde se deba poner este tema, por lo que deben tenerme un poco de paciencia mientras le cojo bien el tiro a estos asuntos...

Ok, esta es la situación: En una pagina html + php, con sesion abierta, tengo un formulario con un boton que llama a una funcion en js que valida los datos del mismo. El script verifica los datos del formulario y envia mensaje de error en los datos, en caso de haberlo o envia el formulario a otra página. El caso es que cuando se detecta un error, se notifica y el boton queda inservible; de hecho todos los botones quedan sin funcionamiento. La verdad no se a que se deba esto, creo que puede ser por las sesiones pues antes de implementar esto el formulario funcionaba bien y no se bloqueaba nada.

Última edición por rodaeche; 25/07/2008 a las 15:12
  #2 (permalink)  
Antiguo 25/07/2008, 15:18
Avatar de Un_Tico  
Fecha de Ingreso: julio-2008
Ubicación: Cartago, Costa Rica
Mensajes: 176
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Problema con formulario generado en php y script de validacion en js

Mmmmm...

Porque no pones el código, asi solo imaginandolo esta algo dificil ayudarte..

Saludos...
  #3 (permalink)  
Antiguo 25/07/2008, 16:47
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Busqueda Respuesta: Problema con formulario generado en php y script de validacion en js

Esta es la funcion js que valida
Código:
function validacion(){

estaBien = true;
//Devuelve el arreglo de acuerdo a la cantidad de piezas que se hayan creado. 
piezas = arreglo(document.fCrear.piezas.value);
aux="";
//Con el nombre de la pieza, verifico que todos los campos esten llenos.
for(i=0;i<piezas.length && estaBien;i++){
	nombre = piezas[i];
	material = document.fCrear["mat_"+nombre].value;
	arreglo= material.split("/");
	unidad= arreglo[2];
	//Validamos que se haya seleccionado un material
	if(material=="Seleccione un material..." && estaBien){
		estaBien = false;
		alert("Debe seleccionar un material para la pieza "+ nombre);
		document.fCrear["mat_"+nombre].focus();
	}else{
		if(unidad==" CMS " || unidad==" LAM "){
			ancho = document.fCrear["ancho_"+nombre].value;
			largo = document.fCrear["largo_"+nombre].value;
			cantidad = document.fCrear["cant_"+nombre].value;
			
			//Validamos el ancho
			if((ancho=="" || ancho==0) && estaBien) {
				estaBien = false;
				alert("Debe digitar el ancho de la pieza " + nombre);
				document.fCrear["ancho_"+nombre].focus();
			}
			//Validamos el largo
			if((largo==0 || largo=="") && estaBien){
				estaBien = false;
				alert("Debe digitar el largo de la pieza " + nombre);
				document.fCrear["largo_"+nombre].focus();
			}
			//Validamos la cantidad
			if((cantidad==0 || cantidad=="") && estaBien){
				estaBien = false;
				alert("Debe digitar la cantidad para la pieza " + nombre);
				document.fCrear["cant_"+nombre].focus();
			}
		}else{
			document.fCrear["ancho_"+nombre].value = 0;
			document.fCrear["largo_"+nombre].value= 0;
		}
	}
}
Y las listas se generan dinamicamente asi:

Código PHP:
<FORM NAME="fCrear" METHOD="POST" ACTION="funcion.php">
<?php
$piezas 
split("/",$_POST['piezas']); // <-- Contiene el arreglo de los NOMBRES de las piezas que el usuario digitó. 
//Con este ciclo volvemos las piezas Pieza Uno Dos a la forma Pieza_Uno_Dos. 
for($i=0$i<count($piezas)-1$i++){
    
$auxsplit(" ",$piezas[$i]);
    if(
count($aux)>1){
        
$piezas[$i]= $aux[0];
        
$j=1;
        for(; 
$j<count($aux)-1$j++){
            
$piezas[$i].= "_".$aux[$j];                            
        }
        
$piezas[$i].="_".$aux[$j];
    }
}
$menu"";
$ancho="";
$largo="";  
$cant="";
echo 
"<tr><td colspan= \"2\"></td><td><center><b>Ancho</td><td><center><b>Largo</td><td><center><b>Cantidad</td>";
//Me conecto a la BD para seleccionar la lista de los materiales.
if($c=mysql_connect("localhost","root","")){
    
//Conexión exitosa con la BD.  Se procede con el 'query' para los clientes.
    
mysql_select_db ("bd_productos_fabrica"$c);
    
$sql 'SELECT * FROM `materiales` ORDER BY `nombre` ASC';
    
//No se incluye la ultima posición de $piezas por ser una cadena vacía.
    
$i=0;
    echo 
"<ul>";
    
//echo "<script>alert('".$piezas[6]."');</script>";
    
for($i=0;$i<(count($piezas)-1);$i++){
        
//Tomo los materiales de la BD.
        
$res mysql_query($sql,$c);
        
$materiales "<option>Seleccione un material...</option>";
        
//Este ciclo me devuelve lista de materiales a escoger para cada pieza
        
while($row mysql_fetch_array($res)) {
            
$materiales.="<option size=\"20\">".$row["nombre"]." / ".$row["id_prov"]." / ".$row["unid_medida"]." / $".$row["costo_unid"]." / ".$row["id_mat"]."</option>";
        }
        
//Esto se hace para cada material en el arreglo de piezas.
                            
        
$menu="<td width=\"70%\"><center><SELECT style=\"width:300px\" size=\"1\" name=\"mat_".$piezas[$i]."\">".$materiales."</SELECT></td>";
        
$ancho="<td width=\"10%\"><center><input type=\"text\" name=\"ancho_".$piezas[$i]."\" size=\"2\"></td>";
        
$largo="<td width=\"10%\"><center><input type=\"text\" name=\"largo_".$piezas[$i]."\" size=\"2\"></td>";
        
$cant="<td width=\"10%\"><center><input type=\"text\" name=\"cant_".$piezas[$i]."\" size=\"2\"></td>";
        
//Crea la fila con el nombre de la pieza, lista de materiales, campo para el ancho, largo y cantidad. 
        
echo "<tr><td>-<font size=\"1\">",$piezas[$i],"</font></td>",$menu,$ancho,$largo,$cant,"</tr>";
    }
    echo 
"</ul>";
    
//Creo variable hidden que envia la cadena con los nombres de las piezas.
    
echo "<input type=\"hidden\" name=\"piezas\" value=\"".$_POST["piezas"]."\">";
    
//Libero recursos y cierro la conexión
    
mysql_free_result($res);
    if(!
mysql_close($c)){    
        
//Entra aquí si ha ocurrido algún error cerrando la conexión con la BD.
        
echo "<script>alert(\"Error cerrando la conexión.\")</script>";
    }
}else{
    echo 
"<script>alert(\"Ha ocurrido un error en la conexión.\")</script>";
}
?>

//...

<input type="button" value="Crear producto!" name="crearProd" onclick="validacion()">

</form>
Entonces como iba diciendo, si ocurre algun tipo de error, este es notificado al usuario y el formulario queda invalido... Ah y pues algunos comments son obvios, pero me sirven para guiarme en medio de todo ese reguero de codigo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:41.