Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2010, 17:21
GreenlanternX
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 18 años, 7 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?