Foros del Web » Programando para Internet » Javascript »

codigo de validacion en javascript y php

Estas en el tema de codigo de validacion en javascript y php en el foro de Javascript en Foros del Web. Hola, cómo están? Soy nueva en esto de programar con javascript y php. Se bastante de php, pero recién empiezo con javascript. Tengo un código ...
  #1 (permalink)  
Antiguo 01/10/2004, 07:41
 
Fecha de Ingreso: octubre-2004
Ubicación: Mendoza
Mensajes: 4
Antigüedad: 19 años, 7 meses
Puntos: 0
codigo de validacion en javascript y php

Hola, cómo están?
Soy nueva en esto de programar con javascript y php. Se bastante de php, pero recién empiezo con javascript.
Tengo un código que toma de una base mysql, a través de php, datos para crear un formulario dinámico (cada registro de la tabla, me genera una caja de texto diferente).
La generación de las cajas de texto, lo hace bien. El problema es que cada caja de texto tiene una llamada a una función de validación en javascript (la cual defino en el head), que verifica si cada tecla presionada es un numero un caracter alfabético.
El problema, es que los datos que le pasa a la función de validación son sólo los de la última caja de texto, y en cada una de las otras, trata de validar con estos mismos datos, y no con los que le corrresponden a cada una.
Les mando el código, a ver si pueden ayudarme a ver dónde está el problema.

Muchas gracias.

Código:

<html>
<?
//config.php es el archivo donde se hace la conexion a la base de datos
require("config.php");
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META http-equiv="Pragma" content="no-cache">
<meta http-equiv="expires" content="01-01-1980">

<SCRIPT language="javascript">
var nav4 = window.Event ? true : false;
/*con esta funcion se pretende validar cada tecla que se presione en los campos de texto
la variable opc me dice si el campo acepta datos numericos(opc=2) o alfabeticos(opc=1) */
function validar(form,evt){
var key = nav4 ? evt.which : evt.keyCode;
alert(formu);
alert(opc);
alert(campo);


for (var i=0;i<document.forms.length;i++){
for (var j=0;j<document.forms[i].elements.length;j++){

if(document.forms[i].elements[j].name=campo){

if(opc==1){

return (key == 32 || (key >= 97 && key <= 122) || (key >= 65 && key <= 90));
}
if(opc==2){

return (key < 13 || (key >= 48 && key <= 57));
}
if(key==13) document.forms[i].item[j+1].focus();
}
}
}
}

</SCRIPT>
</head>
<body>
<form name="alta" id="alta" action="alta.php" method="get">
<?
/*con la siguiente funcion, se crean a partir de una base de datos, los textbox que sean
necesarios, de acuerdo a la cantidad de registros de la tabla. Habra una caja de texto
por cada registro*/
function crear_form(){
//$dbi es la variable de la conexion a la base de datos en el archivo config.php
global $dbi;
/*fbb004 es la tabla con la cabecera, posee los siguientes campos:
004_formulario(nombre del formulario, es caracter y es la clave primaria)
004_nrocampos(cantidad de cajas de texto que debo crear, es numerica)
004_estilos(distintos estilos para aplicar al formulario, tipo caracter)
004_titulo(titulo del formulario, tipo caracter)
004_sentencia(sera la instruccion sql que me diga que hacer con los datos de la tabla,
insertar registros, eliminar, consultar..., de tipo text)*/

/*fbb005 es la tabla de detalle de fbb004, posee los siguientes campos:
005_004_formulario(nombre del formulario, caracter y clave primaria y a la vez
relaciona esta tabla con fbb004)
005_campo(nombre de la caja de texto, caracter y parte de la clave primaria de esta
tabla)
005_tipocampo(me dice si los datos de esa caja de texto seran numericos(num) o de
caracter(texto), es de tipo caracter)
005_tipoelemento(en este caso seran "textbox" todos los registros, es de tipo caracter)
005_tamanio(cantidad maxima de caracteres que se pueden ingresar en esa caja de texto, es de tipo entero)
005_label(rotulo para mostrar al lado de las cajas de texto, para saber lo que hay que
ingresar en ellas, es de tipo caracter)
005_nulo(me dice si esa caja de texto se puede dejar vacia(si) o no(no), es de tipo caracter)*/
$sql = "SELECT * FROM fbb004 AS f4, fbb005 AS f5 WHERE f4.004_formulario=f5.005_004_formulario";
$result = mysql_query($sql,$dbi) or die(mysql_error($dbi)."<br>Error en busqueda.(0) <br>$sql");
$cant = mysql_num_rows($result);
if($cant >0){
$i=0;
$fin = 0;
while($fila = mysql_fetch_array($result)){
$formulario = $fila["004_formulario"];
$nrocampos = $fila["004_nrocampos"];
$estilos = $fila["004_estilos"];
$titulo = $fila["004_titulo"];
$sentencia = $fila["004_sentencia"];
$campo[$i] = $fila["005_campo"];
$tipocampo[$i] = $fila["005_tipocampo"];
$tipoelemento[$i] = $fila["005_tipoelemento"];
$tamanio[$i] = $fila["005_tamanio"];
$label[$i] = $fila["005_label"];
$nulo[$i] = $fila["005_nulo"];
if($tipocampo[$i]=='texto'){
$opc[$i]=1;
}else{
if($tipocampo[$i]=='num'){
$opc[$i]=2;
}
}

?>
<script language="javascript">
//aca paso las variables traidas de la base de datos a variables en javascript
var formu = '<?echo $formulario;?>';
var campo = '<?echo $campo[$i];?>';
var cantcampos = '<?echo $nrocampos;?>';
var tipocampo = '<?echo $tipocampo[$i];?>';
var tipoelemento = '<?echo $tipoelemento[$i];?>';
var tamanio = '<?echo $tamanio[$i];?>';
var label = '<?echo $label[$i];?>';
var nulo = '<?echo $nulo[$i];?>';
var opc = '<?echo $opc[$i];?>';
alert(opc);
/*use campos de texto ocultos para guardar el valor de las variables, pero
no se si estan bien pasados los valores, porque el name me toma 'opc', en
vez del valor de opc (idem con las otras variables)*/
//document.writeln("<input type='hidden' id='campo' name='<?echo $campo[$i];?>' value='<?echo $campo[$i];?>'>");
//document.writeln("<input type='hidden' name='<?echo $opc[$i];?>' value='<?echo $opc[$i];?>'>");
document.writeln('<?echo $label[$i];?>');
/*aca armo las cajas de texto, y en el evento onKeyPress, llamo a la funcion de
validacion definida en el head, pasandole los valores de opc y campo*/
document.writeln("<input type='text' name='<?echo $campo[$i];?>' onKeyPress='return validar(this,event);'><br>");
/*el problema aca es que entra a la funcion de validacion, pero con los datos de la ultima caja de texto,no importa en cual me posicione. Es decir, me valida solo la última caja de texto*/
document.alta.elements[0].focus();
</script>
<?
$i++;
}
$fin =$i;

}
}
crear_form();
?>
</form>
</body></html>
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:34.