Foros del Web » Programando para Internet » Javascript »

javascript y ajax

Estas en el tema de javascript y ajax en el foro de Javascript en Foros del Web. Hola, tengo un formulario tipico de datos personales con dni, tanto para altas, como para añadir informacion; el tema esta en que en principio siempre ...
  #1 (permalink)  
Antiguo 05/08/2010, 11:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 0
javascript y ajax

Hola, tengo un formulario tipico de datos personales con dni, tanto para altas, como para añadir informacion; el tema esta en que en principio siempre se tendria que poner el nombre, apellidos, dni, etc,etc.. y me gustaria para hacerlo correctamente, que a pesar de que fuera visible todo el formulario, al ponerse el dni, se buscara en la bbdd, y si se encuentra pues que aparecieran los datos personales. En fin, al final el usuario solo tendria que poner el dni y el campo de texto para añadir informacion.

Posteriormente lo que hago es que dado un 'paciente' pues puedo ver todas las fechas y horas, es decir, todas las citas del mismo junto con el informe medico.

PD: El tema seria detectar que se ha puesto un dni valido (x caracteres en el textbox correspondiente), detectarlo con javascript y luego a traves de ajax lanzar la consulta para que me rellene los campos.

El problema es que no se ajax, y no se como hacer la parte de javascript. ¿Algun ejemplito?

Gracias mil
  #2 (permalink)  
Antiguo 05/08/2010, 15:39
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: javascript y ajax

Hola.

prueba con este:
http://www.maestrosdelweb.com/editorial/ajaxpaso/

suerte
  #3 (permalink)  
Antiguo 07/08/2010, 06:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 0
Respuesta: javascript y ajax

He probado algo como esto, pero cuando aprieto una tecla no parece que vaya a la funcion ya que no intenta llamar al php (no muestra un error de pagina no encontrada, ya que aun no lo he creado). ¿Alguna sugerencia?

<body>
<script type="text/javascript">
function ajaxobj() {
try {
_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
_ajaxobj = false;
}
}

if (!_ajaxobj && typeof XMLHttpRequest!='undefined') {
_ajaxobj = new XMLHttpRequest();
}

return _ajaxobj;
}

function holaMundo () {
// Instanciamos el objecto XMLHttpRequest
ajax = ajaxobj();
// Abrimos la conexión al script
ajax.open("GET", "holamundo.php", true);
// Indicamos que función vigila el cambio de estado
ajax.onreadystatechange=function() {
if (ajax.readyState == 4) {
// Mostramos resultado
alert(ajax.responseText);
}
}
// Enviamos algo para que funcione el proceso
ajax.send(null);
}
</script>
......

<label>
<input type="text" name="doc_id" onkeypress="holaMundo()" />
</label>
  #4 (permalink)  
Antiguo 07/08/2010, 07:03
Avatar de yense  
Fecha de Ingreso: febrero-2008
Ubicación: Perú Lima
Mensajes: 340
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: javascript y ajax

Código Javascript:
Ver original
  1. function holaMundo () {
  2. ajax = ajaxobj();
  3. ajax.open("GET", "holamundo.php", true);
  4. ajax.onreadystatechange=function() {
  5. if (ajax.readyState == 4) {
  6. alert(ajax.responseText);
  7. }
  8. }
  9. ajax.send(null);
  10. }
  11. </script>
Bueno en caso que estes mandando datos a tu archivo PHP "holamundo.php" debes de mandar tambien el dni ahi mismo para que age la consulta a la base de datos despues todavia enviarias el mensaje que corresponde a tu consulta si lo encontro el DNI en tu BD o no
ya que ahí solo estas enviando a tu archivo php pero no el dni
  #5 (permalink)  
Antiguo 07/08/2010, 09:54
 
Fecha de Ingreso: mayo-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 0
Respuesta: javascript y ajax

Te entiendo, pero no comprendo porque no salta a esa funcion, cada vez que pulso una tecla. Me imaginaba que esa era justamente la funcion del onkeypress.
  #6 (permalink)  
Antiguo 10/08/2010, 13:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 0
Respuesta: javascript y ajax

Mmmm ahora si que 'salta'. Sera impaciencia mia que no me esperaba.
Gracias
  #7 (permalink)  
Antiguo 10/08/2010, 13:44
 
Fecha de Ingreso: mayo-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 0
Respuesta: javascript y ajax

Recuperando de nuevo ese codigo, cuando hago el holamundo.php, a que variables puedo acceder? Quiero decir, si esa funcion salta cada vez que pulso una tecla, que se produce dentro de un textbox, la funcionalidad deseada seria poder acceder a la cadena de texto que hay en cada momento... ¿alguna sugerencia? Como accedo a ella?

Gracias
  #8 (permalink)  
Antiguo 10/08/2010, 14:57
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: javascript y ajax

Hola

El evento onkeypress no parece el mas conveniente en este caso, por harás 6 envios y habrá 6 respuesta que no se servirán para nada. Como solucionarlo? o usas el evento onclik o mantienes onkeyup.
En caso que quieras manter el evento tendrás que hacer una condicional en la función holaMundo() para así evitar lo que te comentaba anteriormente
Cita:
if (valor.length <= 6) {
// no hace nada
}else {
// hace la petión
}
Por otro lado, pasale a la función valor que tiene el campo. En resumen todo esto quedaría algo como esto
Código Javascript:
Ver original
  1. function holaMundo (valor) {
  2. if (valor.length <= 6) {
  3. }else {
  4. // hace la petión
  5. // Instanciamos el objecto XMLHttpRequest
  6. ajax = ajaxobj();
  7. // Abrimos la conexión al script
  8. ajax.open("GET", "holamundo.php?val"+valor, true);
  9.  
  10. ....
  11.  
  12. }
  13.  
  14. <input type="text" name="doc_id" onkeypress="holaMundo(this.value)" />

En el php recoges la variable
Código PHP:
Ver original
  1. $dni = $_GET['val'];
  2. // haces la consulta
  3. // si ha traido algún registro envias la respuesta
  4. echo 'Adler';
  5. .......

Edito: También estaría bien que validar el dni
Código Javascript:
Ver original
  1. <script language="text/javascript">
  2. function letraDNI(num) {
  3. letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
  4. if (num.length == 8 && isNaN(num) == false)
  5. document.formDNI.txtDNI.value = num + "-" + letras.charAt(parseInt(num) &#37; 23);
  6. else
  7. document.formDNI.txtDNI.value = num;
  8. }
  9. </script>
  10. </head>
  11. <body>
  12. <form name="formDNI">
  13. <input name="txtDNI" maxlength="9" onkeyup="letraDNI(formDNI.txtDNI.value)" />
  14. </form>

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;" />

Última edición por Adler; 10/08/2010 a las 15:04 Razón: mas info
  #9 (permalink)  
Antiguo 11/08/2010, 09:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 0
Respuesta: javascript y ajax

Muchas gracias!! Con esto aprendo mucho.

Etiquetas: ajax
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:57.