Foros del Web » Programando para Internet » PHP »

Ciclo for

Estas en el tema de Ciclo for en el foro de PHP en Foros del Web. Saludos Foro. Tengo el siguiente codigo: Código: nom_1=document.form6.nombres_1.value; pater_1=document.form6.paterno_1.value; mater_1=document.form6.materno_1.value; email_1=document.form6.email_1.value; nom_2=document.form6.nombres_2.value; pater_2=document.form6.paterno_2.value; mater_2=document.form6.materno_2.value; email_2=document.form6.email_2.value; nom_3=document.form6.nombres_3.value; pater_3=document.form6.paterno_3.value; mater_3=document.form6.materno_3.value; email_3=document.form6.email_3.value; nom_4=document.form6.nombres_4.value; pater_4=document.form6.paterno_4.value; mater_4=document.form6.materno_4.value; email_4=document.form6.email_4.value; nom_5=document.form6.nombres_5.value; pater_5=document.form6.paterno_5.value; ...
  #1 (permalink)  
Antiguo 08/11/2009, 21:16
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Ciclo for

Saludos Foro.

Tengo el siguiente codigo:

Código:
nom_1=document.form6.nombres_1.value;
	pater_1=document.form6.paterno_1.value;
	mater_1=document.form6.materno_1.value;
	email_1=document.form6.email_1.value;
	
	nom_2=document.form6.nombres_2.value;
	pater_2=document.form6.paterno_2.value;
	mater_2=document.form6.materno_2.value;
	email_2=document.form6.email_2.value;

	nom_3=document.form6.nombres_3.value;
	pater_3=document.form6.paterno_3.value;
	mater_3=document.form6.materno_3.value;
	email_3=document.form6.email_3.value;
	
	nom_4=document.form6.nombres_4.value;
	pater_4=document.form6.paterno_4.value;
	mater_4=document.form6.materno_4.value;
	email_4=document.form6.email_4.value;
	
	nom_5=document.form6.nombres_5.value;
	pater_5=document.form6.paterno_5.value;
	mater_5=document.form6.materno_5.value;
	email_5=document.form6.email_5.value;	
	
	nom_6=document.form6.nombres_6.value;
	pater_6=document.form6.paterno_6.value;
	mater_6=document.form6.materno_6.value;
	email_6=document.form6.email_6.value;
	
	nom_7=document.form6.nombres_7.value;
	pater_7=document.form6.paterno_7.value;
	mater_7=document.form6.materno_7.value;
	email_7=document.form6.email_7.value;

	nom_8=document.form6.nombres_8.value;
	pater_8=document.form6.paterno_8.value;
	mater_8=document.form6.materno_8.value;
	email_8=document.form6.email_8.value;
	
	nom_9=document.form6.nombres_9.value;
	pater_9=document.form6.paterno_9.value;
	mater_9=document.form6.materno_9.value;
	email_9=document.form6.email_9.value;
	
	nom_10=document.form6.nombres_10.value;
	pater_10=document.form6.paterno_10.value;
	mater_10=document.form6.materno_10.value;
	email_10=document.form6.email_10.value;
Lo que me gustaria saber es si es posible meter esto en un ciclo FOR en donde los numeros se adquieran mediante la literal i ó j ó k, etc etc del ciclo for....

Es decir:

for(i=1; i<=10; i++){
instrucciones
}

Esto es para obtener los valores de un formulario con 10 campos de nombre, 10 de apellido paterno, 10 de apellido materno y 10 de email.

Gracias por su ayuda de antemano...
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #2 (permalink)  
Antiguo 08/11/2009, 21:25
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ciclo for

si, se puede hacer. lo que tienes que hacer es crear dinamicamente el nombre del objeto que va variando. para ello, tienes que usar una sintaxis un tanto alterna al operador de punto. si tienes experiencia en otros lenguajes, lo puedes relacionar a los arrays asociativos. lo que haces es simple, en lugar de usar el punto para referirte al objeto, usa corchetes ([]) y dentro de este creas dinamicamente un string.
Código:
for(var i = 0; i < 10; i++){ // asumiendo que son diez registros;
document.form6["nombres_" + i].value;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 08/11/2009, 21:58
 
Fecha de Ingreso: diciembre-2008
Ubicación: Lima - Perú
Mensajes: 187
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Ciclo for

Si quieres analiza este coidigo, abre el block de notas - copia y pega- guarda con el nombre que gustes y ejecuta

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<script language="javascript"> 
var datos=new Array();
var Id=new Array("nombres_","paterno_","materno_","email_");
var numeroGrupos=5;
var numeroItems=4;
function capturar()
{	
	for (i=0;i<numeroGrupos;i++)
	{
		datos[i]=Array();		
		for(j=0;j<numeroItems;j++)
			datos[i][j]=document.getElementById(Id[j]+i).value;
	}
	
}
 
function imprimir()
{
	var pantalla=document.getElementById("pantalla");
	for (i=0;i<numeroGrupos;i++)
	{
		for(j=0;j<numeroItems;j++)
			pantalla.innerHTML=pantalla.innerHTML+datos[i][j]+", ";	
		pantalla.innerHTML=pantalla.innerHTML+"<br><br>";
	}
}
</script>
<body>
 
<table border="1" width="100%"><tr><td valign="top">
<input type="button" value="capturar variables" onclick="capturar()"/>
<input type="button" value="imprimir variables" onclick="imprimir()"/><br />
<div style="width:500px; height:500px; border-style:solid; border-width:1px;" id="pantalla"></div>
</td><td valign="top">
nombres_0: &nbsp;&nbsp;<input type='text' id='nombres_0'><br>paterno_0: &nbsp;&nbsp;<input type='text' id='paterno_0'><br>materno_0: &nbsp;&nbsp;<input type='text' id='materno_0'><br>email_0: &nbsp;&nbsp;<input type='text' id='email_0'><br><br>nombres_1: &nbsp;&nbsp;<input type='text' id='nombres_1'><br>paterno_1: &nbsp;&nbsp;<input type='text' id='paterno_1'><br>materno_1: &nbsp;&nbsp;<input type='text' id='materno_1'><br>email_1: &nbsp;&nbsp;<input type='text' id='email_1'><br><br>nombres_2: &nbsp;&nbsp;<input type='text' id='nombres_2'><br>paterno_2: &nbsp;&nbsp;<input type='text' id='paterno_2'><br>materno_2: &nbsp;&nbsp;<input type='text' id='materno_2'><br>email_2: &nbsp;&nbsp;<input type='text' id='email_2'><br><br>nombres_3: &nbsp;&nbsp;<input type='text' id='nombres_3'><br>paterno_3: &nbsp;&nbsp;<input type='text' id='paterno_3'><br>materno_3: &nbsp;&nbsp;<input type='text' id='materno_3'><br>email_3: &nbsp;&nbsp;<input type='text' id='email_3'><br><br>nombres_4: &nbsp;&nbsp;<input type='text' id='nombres_4'><br>paterno_4: &nbsp;&nbsp;<input type='text' id='paterno_4'><br>materno_4: &nbsp;&nbsp;<input type='text' id='materno_4'><br>email_4: &nbsp;&nbsp;<input type='text' id='email_4'><br><br></td></tr>
</table>
</body>
</html> 
  #4 (permalink)  
Antiguo 08/11/2009, 21:59
 
Fecha de Ingreso: diciembre-2008
Ubicación: Lima - Perú
Mensajes: 187
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Ciclo for

priiemro llenas los campos, luego haces click en capturar variables y luego en imprimir variables
  #5 (permalink)  
Antiguo 08/11/2009, 22:15
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Sonrisa Respuesta: Ciclo for

Gracias por las sugerencias, estoy en este momento poniendo en practica las soluciones expuestas.

A la brevedad les comento cuales fueron mis resultados.
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #6 (permalink)  
Antiguo 08/11/2009, 23:03
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Ciclo for

Ya lo intente de las 2 formas y no me resulta, la unica diferencia con el ejemplo de diego1311 es que en el formulario html genero los inputs de la siguiente manera:

Código PHP:
                            <?php for($j=1$j<=10;$j++) {?>
                            <tr><td><input id="nombres_<?php echo $j?>" name="nombres_<?php echo $j?>" type="text" size="25" style="display:none" /></td>
                      <td><input id="paterno_<?php echo $j?>" name="paterno_<?php echo $j?>" type="text" size="25" style="display: none" /></td>
                      <td><input id="materno_<?php echo $j?>" name="materno_<?php echo $j?>" type="text" size="25" style="display: none" /></td>
                      <td><input id="email_<?php echo $j?>" name="email_<?php echo $j?>" type="text" size="35" style="display: none" /></td>
                  </tr>
                            <?php }?>
Esto afectara de alguna forma?
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #7 (permalink)  
Antiguo 09/11/2009, 03:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Ciclo for

Mensaje movido al foro de PHP desde JavaScript.

Saludos,
  #8 (permalink)  
Antiguo 09/11/2009, 13:13
 
Fecha de Ingreso: diciembre-2008
Ubicación: Lima - Perú
Mensajes: 187
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Ciclo for

Lo correcto es de la siguiente forma

Código PHP:
<?

for ($i=0;$i<$numero;$i++)
{
     echo 
"
    <input type='text' id='nombre_$i'>
    <input type='text' id='apellido_$i'>
    ...etc.
    "
;
}

?>
Y obviamente puedes poner un for dentro de otro for, tu acomodalo a tu necesidad, compoara esta forma de usar el bucle for con la que tu pretendes usar
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 06:17.