Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/08/2007, 19:26
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 3 meses
Puntos: 45
Re: Enviar valores relacionados desde un bucle

Hola viktoria:

Es recomendable no postear código PHP en el foro javascript, lo normal es publicar un código HTML de ejemplo para que podamos trabajar con él, avisándonos de que el número de conjuntos de 3 campos será dinámico.

Por otra parte te recuerdo que no es válido tener en un mismo documento elementos con el mismo atributo id, tendrás que utilizar por ejemplo name en su defecto.



Para obtener los ids se me ha ocurrido utilizar DOM (ya que siempre tendremos esa misma estructura):
Código PHP:
<form name="elForm">

    <
input type='hidden' name='idUser[]'  value='123' /> 
    <
input type='text' name='nombre[]'  value='cient1'  onchange='changeName(this)' />
    <
input type='text' name='actividad[]'  value='act1'  onchange='changeAp(this)' /> 
    <
br/>
    <
input type='hidden' name='idUser[]'  value='456' /> 
    <
input type='text' name='nombre[]'  value='cient2'  onchange='changeName(this)' />
    <
input type='text' name='actividad[]'  value='act2'  onchange='changeAp(this)' /> 
    <
br/>
    <
input type='hidden' name='idUser[]'  value='789' /> 
    <
input type='text' name='nombre[]'  value='cient3'  onchange='changeName(this)' />
    <
input type='text' name='actividad[]'  value='act2'  onchange='changeAp(this)' /> 

</
form>
<
script type="text/javascript">

function 
changeName(caja)    {
    
//su id lo tendrá el campo anterior en el esquema dom
    
var suId caja.previousSibling.previousSibling.value;
    
//recuperamos variable a editar
    
var dato=caja.value;
    
alert("Su valor es "+dato+" y su id es "+suId);
}

function 
changeAp(caja) {
    
}


</script> 
He hecho dos veces previousSibling porque el primero nos devuelve el espacio que hay entre las etiquetas, y el segundo ya llega al tag anterior a ese espacio, esto es, el campo hidden de cada conjunto. Sería más seguro ir hacia atrás con un while hasta que encontremos un campo de tipo hidden con el nombre igual a "idUser[]", pero me ha funcionado simplemente así en IE6 y FF2.

Ojo si varías la estructura.




Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.