Retroceder   Foros del Web > Programación para sitios web > Javascript

Respuesta
 
Herramientas Desplegado
Antiguo 25-jul-2008, 15:01   #1 (permalink)
rodaeche ha deshabilitado el karma
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Enviar un mensaje por Skype™ a rodaeche
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-jul-2008 a las 15:12.
rodaeche está desconectado   Responder Citando
Antiguo 25-jul-2008, 15:18   #2 (permalink)
Un_Tico ha deshabilitado el karma
 
Avatar de Un_Tico
 
Fecha de Ingreso: julio-2008
Ubicación: Cartago, Costa Rica
Mensajes: 101
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...
Un_Tico está desconectado   Responder Citando
Antiguo 25-jul-2008, 16:47   #3 (permalink)
rodaeche ha deshabilitado el karma
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Enviar un mensaje por Skype™ a rodaeche
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
rodaeche está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:00.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93