Foros del Web » Programando para Internet » Javascript »

javascript on demand y campos de formulario

Estas en el tema de javascript on demand y campos de formulario en el foro de Javascript en Foros del Web. les explico: tengo un formulario en el cual tengo varios arrays de textbox con datos de personas (rut, nombres, apellidos, direccion), estos arrays van creciendo ...
  #1 (permalink)  
Antiguo 15/12/2010, 17:21
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 0
javascript on demand y campos de formulario

les explico:
tengo un formulario en el cual tengo varios arrays de textbox con datos de personas (rut, nombres, apellidos, direccion), estos arrays van creciendo dinamicamente al presionar un boton (todo bien hasta aca)
el problema es que para no perder el tiempo rellenando datos , al ingresar el rut debo hacer una consulta a la base de datos, rescatar los datos (si existen) y cambiar a readonly los datos que nunca cambiaran (rut, nombres, apellidos)
una solucion seria por medio de forms a popups hacer las consultas, pero se compica ya que por cada set de campos de persona deberia crear un nuevo form y el html terminaria llenandose de mucha basura
la otra solucion es por javascript y aca es donde he caido en un laberinto sin salida


function llamar_participante(rut,indice) {
var js= "<script type='text/javascript' src='js/buscar_participante.js.php?rut="+rut+"&indice="+in dice+"'> </s" + "cript>";
document.getElementById("testDiv").innerHTML = js;
probar();
}

por lo que he comprobado con la opcion de ver codigo fuente de firefox, efectivamente se agrega esta linea al fuente , pero la llamada a la funcion nunca ocurre (y la consola de errores se mantiene en blanco)

function llamar_participante(rut,indice)
{
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.onreadystatechange= function () {probar();}
script.onload= function () { probar();}
script.src= "js/buscar_participante.js.php?rut="+rut+"&indice="+in dice;
head.appendChild(script);
}

en este caso el codigo si llama a la funcion pero
<?php
session_start();
require("../db.php");
conectaBD();
$query="select * from participantes where rut='".$_GET["rut"]."'";
$result=pg_query($query);
if (pg_num_rows($result)!=0){
$row=pg_fetch_array($result);
echo "
function probar(){
alert('.rut[".$_GET["indice"]."].');
getElementById('rut[".$_GET["indice"]."]').readonly=!getElementById('rut[".$_GET["indice"]."]').readonly;
getElementById('rut_dv[".$_GET["indice"]."]').value='".$row["rut_dv"]."';
getElementById('rut_dv[".$_GET["indice"]."]').readonly=!getElementById('rut_dv[".$_GET["indice"]."]').readonly;
getElementById('nombre[".$_GET["indice"]."]').value='".$row["nombres"]."';
getElementById('nombre[".$_GET["indice"]."]').readonly=!getElementById('nombre[".$_GET["indice"]."]').readonly;
getElementById('ape_paterno[".$_GET["indice"]."]').value='".$row["ape_pat"]."';
getElementById('ape_paterno[".$_GET["indice"]."]').readonly=!getElementById('ape_paterno[".$_GET["indice"]."]').readonly;
getElementById('ape_materno[".$_GET["indice"]."]').value='".$row["ape_mat"]."';
getElementById('ape_materno[".$_GET["indice"]."]').readonly=!getElementById('ape_materno[".$_GET["indice"]."]').readonly;
getElementById('direccion[".$_GET["indice"]."]').value='".$row["direccion"]."';
getElementById('telefono[".$_GET["indice"]."]').value='".$row["telefono"]."';
getElementById('mail[".$_GET["indice"]."]').value='".$row["email"]."';}

";}
else{echo "alert('no existe')";}

?>
la consola de errores indica que el getElementById es incorrecto, incluso he intentado cargarlo con una funcion y llamarlo con otra (al presionar un boton), pero sigue sin funcionar
alguien sabe como podria hacer trabajar bien este codigo?
  #2 (permalink)  
Antiguo 15/12/2010, 17:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: javascript on demand y campos de formulario

Hola:

getElementById es un método del objeto document, así que debes usarlo así:

document.getElementById(...)

Solo se permite omitir el objeto window...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 15/12/2010, 17:37
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: javascript on demand y campos de formulario

ya lo habia intentado con document incluso intente con getDocumentById (encontre mencionada su existencia pero no logre encontrar ejemplos asi que la intente por siacaso)
  #4 (permalink)  
Antiguo 15/12/2010, 19:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: javascript on demand y campos de formulario

realice el siguiente cambio
en la funcion probar agregue el parametro documento, y en las llamadas le indique this.document
y a todas las referencias les puse documento.getElementBy......
problema?: la consola de errores dice documento is undefined
tras 8 horas de trabajar en este problema me estoy quedando sin neuronas para proximos problemas T_T
  #5 (permalink)  
Antiguo 15/12/2010, 20:25
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: javascript on demand y campos de formulario

de acuerdo, esto esta cada vez mas raro, dentro del codigo del js.php intente alert(document.getElementById('id_formulario').nam e)
funciono, pero si intento refernciar la id de alguno de sus inputs, o atraves del getelement del form.nombreinput
o document.nombre_formulario.getEle.... obtengo undefined, get... is not a function , y otros cuantos errores...alguna idea del porque el form se esta comportando como caja negra en lo que se refiere a sus componentes?
  #6 (permalink)  
Antiguo 16/12/2010, 01:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: javascript on demand y campos de formulario

Hola:

Los atributos "id" no pueden (no deberían) repetirse en el documento, así que solo puede usarse como antes puse (document.getElementById)... asegúrate de que pones "document" (he visto que en tu mensaje pones "documento")...

Puedes usar los nombres dentro de los formularios, y pueden repetirse, en tal caso debes indexarlos... y también pueden repetirse en otros formularios.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 16/12/2010, 07:04
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: javascript on demand y campos de formulario

despues de una noche de sueño logre dar con el problema:
uno de los campos que estaba tratando de referenciar no le habia declarado el id por eso se truncaba la ejecucion del script
y segundo readonly tenia que ser readOnly
gracias por la ayuda

Etiquetas: campos, formulario
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 18:49.