Foros del Web » Programando para Internet » Javascript »

no me funciona javascript con un bucle ya que el id es el mismo

Estas en el tema de no me funciona javascript con un bucle ya que el id es el mismo en el foro de Javascript en Foros del Web. Hola a todos, Pese a que pateketrueke me ayudo no he conseguido solucionarlo, no consigo que la funcion de javascript funcione, no se bien si ...
  #1 (permalink)  
Antiguo 04/01/2010, 10:30
Avatar de JOSANCIN  
Fecha de Ingreso: septiembre-2008
Ubicación: huesca
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 0
no me funciona javascript con un bucle ya que el id es el mismo

Hola a todos,
Pese a que pateketrueke me ayudo no he conseguido solucionarlo, no consigo que la funcion de javascript funcione, no se bien si ponerlo en este foro o en el de javascript, pruebo a ponerlo en este y si no mañana lo pasare al de javascript
Tengo un bucle que lee valores de una tabla mostrando en pantalla formularios, en el form tengo un evento que llama a una funcion de javascript; lo que me ocurre es lo siguiente, si pongo tres formularios independientes funciona el javascript mientras que si listo los formularios por medio de un bucle no se llama a la funcion al hacer el submit.
Si hago un alert en la funcion de javascript veo que el valor no "entra"

agradeceria que alguien me diera una pista de como resolverlo si a alguno le ha pasado

gracias y que vaya bien





<html>
<head>

<script type="text/javascript">
function getfocus(id)
{

var name=document.forms["id"].dato.value;
document.getElementById(name).focus();
return false;
}
</script>

</head>
<body>

<?php

while($fila=mysql_fetch_array ($resultado)){

$resultado=consultar("select * from noticias ");
$id=$fila["id"];
echo '<form method="post" action ="" id="'.$id.'" onsubmit="return getfocus('.$id.');" >';
echo '<input type="hidden" name="ok" value='.$id.'>';
echo '<input type="submit" value="ver noticia completa" id='.$id.'>';

}

?>
</body>
</html>
  #2 (permalink)  
Antiguo 04/01/2010, 10:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no me funciona javascript con un bucle ya que el id es el mismo

primero, los IDs no deben ser solo números... ¿tu variable $id es un numero? ¡mal!
R: intenta prefijarle aunque sea un carácter, recuerda el ejemplo que puse aquella ocasión...

segundo, en tu función Javascript estas encerrando entre comillas el parámetro "id" ¡mal!!
R: eso hace que sea un string, y ya no es el argumento pasado... simplemente omite las comillas

tercero, al momento de imprimir la llamada en el atributo onsubmit estas omitiendo las comillas del atributo ¡mal!!
R: ahí si debe tomarse como string... por lo tanto agrega las comillas correctamente

cuarto, no es necesario el ID en el formulario si puedes usar directamente el ID del <input/> ¡mal!!
R: simplemente hay que usar el ID del <input/>

quinto, como en el punto cuatro cambiamos... se debe implementar de nuevo la función
R: no es mi costumbre, pero para que quede aún mas claro
Código PHP:
<html>
<head>

<script type="text/javascript">
function getfocus(id)
{
document.getElementById(id).focus();
return false;
}
</script>

</head>
<body>

<?php

while($fila=mysql_fetch_array ($resultado)){

$resultado=consultar("select * from noticias ");
$id=$fila["id"];
echo 
'<form method="post" onsubmit="return getfocus(\'el_dato_'.$id.'\');" >';
echo 
'<input type="hidden" name="ok" value="'.$id.'">';
echo 
'<input type="submit" value="ver noticia completa">';
echo 
'<input type="text" id="el_dato_'.$id.'"/></form>';
}

?>
</body>
</html>
PDTA: yo no veo en tu código el id="dato" que explícitamente solicitabas en tu función original getFocus() pero agregue uno para simularlo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/01/2010, 10:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde PHP a Javascript

Etiquetas: bucle
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 05:23.