Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ayuda con consulta con ajax

Estas en el tema de Ayuda con consulta con ajax en el foro de Frameworks JS en Foros del Web. Hola, quisiera que me ayudaran, resulta q tengo un problema, tengo un formulario con 5 campos, uno de ellos es el codigo,lo que necesito es ...
  #1 (permalink)  
Antiguo 16/06/2009, 12:26
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años, 7 meses
Puntos: 0
Ayuda con consulta con ajax

Hola, quisiera que me ayudaran, resulta q tengo un problema, tengo un formulario con 5 campos, uno de ellos es el codigo,lo que necesito es que cuando el usuario ingrese un codigo y presione ENTER, y si es que existe, los demas campos se llenen con sus datos, la verdad nose si esto se deba hacer con AJAX, o no, pero lo estuve haciendo de esta forma:
Esta es el campo de texto del codigo, que llama a la funcion busc_hist()
Código HTML:
 <div id="resultado">
<input type="text" name="hist" id="hist" onkeypress="buscar_hist(this.value)"/> 
Código:
function buscar_hist(valor){
	var key=window.event.keyCode;
	if (key == 13) {
		MostrarConsulta(valor);
	}
}
Como ven este es el codigo que verifica que se ha presionado ENTER y llama a la siguiente función(que es donde uso AJAX):
Código:
function MostrarConsulta(hist){
	divResultado = document.getElementById('resultado');
	ajax=objetoAjax();
	ajax.open("GET", "busca_hist_pac.php?hist="+hist);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divResultado.innerHTML = ajax.responseText 
		}  
	}        
ajax.send(null)
}
De aca me llama al archivo busca_hist_pac.php donde se hace la búsqueda pero es aquí donde me estanquo, la búsqueda lo hago y recupero los datos, pero como hago para q esos datos vallan a los campos de mi pagina anterior(donde esta el campo código que desencadena todo). Este es el código de busca_hist_pac.php:
Código PHP:
require_once('pacienteDAOFactory.class.php');
$n=pacienteDAOFactory::getInstancia();
$hist=$_GET["hist"];
$n->buscar_pac($hist); 
¿Cómo deberia hacerlo? espero que me puedan ayudar.
  #2 (permalink)  
Antiguo 16/06/2009, 13:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Ayuda con consulta con ajax

Hola

Si te he entendido, sería tan sencillo como cambiar esto

Código javascript:
Ver original
  1. divResultado = document.getElementById('resultado');

por esto

Código javascript:
Ver original
  1. divResultado = document.getElementById('hist');

y digo si te he entendido por esto

Cita:
Iniciado por xtian87 Ver Mensaje
como hago para q esos datos vallan a los campos de mi pagina anterior(donde esta el campo código que desencadena todo).
En caso que recibas varios valores, lo has de hacer es un split

Código javascript:
Ver original
  1. divResultado1 = document.getElementById('campo1');
  2. divResultado2 = document.getElementById('campo2');
  3.  
  4. var valores = ajax.responseText;    
  5. divResultado1.value = valores.split(",")[0];
  6. divResultado2.value = valores.split(",")[1];
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 16/06/2009, 14:48
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con consulta con ajax

Gracias por responder,mira tengo un archivo orden.php en donde tengo estos 5 campos q decia, en el campo codigo yo ingreso el codigo, presiono enter y si es q existen datos me llena los 4 campos restantes, la secuencia es como la mostre hace un momento.
Ahora, hize lo que tú(Adler) me indicastes, pero en los campos me bota "undefined", como te das cuenta en el archivo: "busca_hist_pac.php" yo uso objetos,pero al parecer mi archivo en donde se encuentra mi función AJAX no lee los datos.
Esto fue lo que cambie:

function MostrarConsulta(hist){
divResultado1 = document.getElementById('nombre');
divResultado2 = document.getElementById('aps');
divResultado3 = document.getElementById('sexo');
divResultado4 = document.getElementById('fec');

ajax=objetoAjax();
ajax.open("GET", "buscar_hist_pac.php?hist="+hist);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//divResultado1.innerHTML = ajax.responseText;
var valores = ajax.responseText;
divResultado1.value = valores.split(",")[0];
divResultado2.value = valores.split(",")['apepat'];
divResultado3.value = valores.split(",")['sexo'];
divResultado4.value = valores.split(",")['fecnac'];
}

}
ajax.send(null)
}


y en el archivo php, busca_hist_pac.php, soo agregue un foreach:
....
$hist=$_GET["hist"];
$m=$n->buscar_pac($hist);
foreach($m as $o){
echo $nombre=$o->nombre.",";
echo $apepat=$o->apepat.",";
echo $apemat=$o->apemat.",";
echo $sexo=$o->sexo.",";
echo $fecnac=$o->fecnac;
}

Última edición por xtian87; 16/06/2009 a las 16:10
  #4 (permalink)  
Antiguo 16/06/2009, 16:30
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con consulta con ajax

brother, sigues por ahi, mira ya me salio, el problema estaba en:
divResultado1.value = valores.split(",")[0];
divResultado2.value = valores.split(",")['apepat'];
...
habia probado con numeros y con el nombre del campo de la BD pero nada, resulta que tenia q era el numero pero entre comillas simples, así:
divResultado1.value = valores.split(",")['0'];
....

Y ahi si jala los datos a los campos que quiero...gracias por el dato...


Lo malo es q ahora me ha salido otro problema, a ver si puedes ayudarme:
if (ajax.readyState==4) {
.....
}
else{
window.alert('No existe paciente, debe registrarlo');
document.getElementById('nuevo').disabled=false;
divResultado1.value="";
....
}

como ves puse un mensaje para indicar que el paciente no existe, pero este mensaje me lo muestra 4 veces, tambien trato de limpiar los campos, para que queden vacíos, ya ue si no muestra "undefined" pero al final del cuarto mensaje q muestra se vuelven a llenar con "undefined".... A que se debe y como puedo solucionarlo???

Última edición por xtian87; 16/06/2009 a las 16:40
  #5 (permalink)  
Antiguo 17/06/2009, 06:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Ayuda con consulta con ajax

Hola

Podrías hacer algo como
Código javascriipt:
Ver original
  1. if (ajax.readyState==4) {
  2. if (ajax.responseText == "") {
  3. window.alert('No existe paciente, debe registrarlo');
  4. document.getElementById('nuevo').disabled=false;
  5. divResultado1.value="";
  6. }
  7. else
  8. {
  9. ......
  10. }
  11. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 14:49.