• Publicidad

Aplicación web sin usar el ratón

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Aplicación web sin usar el ratón

Notapor Negrazo » 2010-02-12 14:11 @633

Hola a todos:
Tengo una aplicación web en la que un operador debe hacer 3 pasos:
  1. Leer con un escáner óptico un código telefónico que viene en código de barras (10 dígitos) y esto debe caer en el campo 1.
  2. Teclear una fecha del movimiento (8 dígitos) y esto debe caer en el campo 2.
  3. Teclear el importe respectivo para ese código telefónico (8 dígitos) y esto debe caer en el campo 3.

Ahora bien, para esto, el operador solo tiene un teclado numérico con los 10 dígitos, la tecla "ENTER" y nada más.

De tal forma que solo puede utilizar dicha tecla para moverse de un campo a otro y al darle el tercer "ENTER" el registro se grabe en mi base de datos (MySQL) y regresar a la misma pantalla para teclear otro código telefónico.

Actualmente lo hacen todo en Excel y pues no tienen problema al respecto, pero ya con esta aplicación, pues no he encontrado la manera de hacerlo.

¿¿¿¿Alguien ha hecho algo parecido a esto????
Cualquier tip es bienvenido.

Por cierto estoy usando Windows XP SP2, Firefox, Perl y MySQL.
Gracias por cualquier ayuda que me puedan proporcionar.

Negrazo.
Última edición por explorer el 2010-02-12 18:13 @801, editado 1 vez en total
Razón: Ortografía
Negrazo
Perlero nuevo
Perlero nuevo
 
Mensajes: 100
Registrado: 2006-12-28 12:51 @577
Ubicación: Guadalajara, Mexico

Publicidad

Re: Aplicación web sin usar el ratón

Notapor explorer » 2010-02-12 19:03 @836

Pues... la solución sería detectar la pulsación de la tecla de Enter y saber en qué campo está puesto el foco de atención: si estamos en el campo 1, cambiamos el foco de atención al 2. Si está en el 2, al 3. Y si está en el 3, activamos el submit del formulario.

Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
  1. <script>
  2.  
  3. window.onload=function() {
  4.  
  5.     var coll = document.forms[0].elements;
  6.     for(i=0;i<coll.length;i++){
  7.         if(document.all){
  8.             coll[i].attachEvent("onkeypress",tabOnEnter);
  9.         }else{
  10.             coll[i].addEventListener("keypress",tabOnEnter,false);
  11.         }
  12.     }
  13. }
  14.  
  15. function tabOnEnter(e){
  16.     if(document.all){
  17.         key=event.keyCode;
  18.         inp=event.srcElement.name;
  19.         idx=parseInt(event.srcElement.getAttribute("tabindex"));
  20.     }else{
  21.         key=e.which;
  22.         inp=e.target.name;
  23.         idx=parseInt(e.target.getAttribute("tabindex"));
  24.     }
  25.  
  26.     if(key==13){
  27.         if(document.all){
  28.             event.cancelBubble=true;
  29.         }else{
  30.             e.stopPropagation();
  31.         }
  32.  
  33.         var coll=document.forms[0].elements;
  34.         for(i=0;i<coll.length;i++){
  35.             if(idx!=""){
  36.                 if(parseInt(coll[i].getAttribute("tabindex"))==idx+1){
  37.                     coll[i].focus();
  38.                 }
  39.             }else{
  40.                 if(inp==coll[i].name){
  41.                     nextel=i+1;
  42.                     if(coll[nextel]){
  43.                         coll[nextel].focus();
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.         return false;
  49.     }
  50. }
  51. </script>
  52.  
  53. <form method="post">
  54. <input type="text" name="name" tabindex="3"><br>
  55. <input type="text" name="address" tabindex="1"><br>
  56. <input type="text" name="email" tabindex="2"><br>
  57. <input type="text" name="phone" tabindex="4"><br>
  58. </form>
  59.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


(sacado de este hilo)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Aplicación web sin usar el ratón

Notapor Negrazo » 2010-02-12 20:11 @882

Gracias explorer:

Déjame entenderlo y luego ponerlo en práctica con mi problema.

Como siempre, con el consejo adecuado.

Saludos.
Negrazo
Perlero nuevo
Perlero nuevo
 
Mensajes: 100
Registrado: 2006-12-28 12:51 @577
Ubicación: Guadalajara, Mexico

Re: Aplicación web sin usar el ratón

Notapor Negrazo » 2010-02-14 22:34 @982

Hola, explorer.

Puse en practica la información del link que me diste y me está funcionando a medias; me explico: ya me puedo mover entre los campos con la tecla "Enter", pero al llegar al botón del submit (Enviar) y le doy Enter me está preguntando si quiero Guardar el archivo 'recolec04.pl' o si lo quiero abrir con el IDE de Perl (?)
De alguna forma no está reconociendo algo y me imagino que es en la instrucción del 'Submit'. Aquí pego la porción del código para ver si le encuentras algo raro o qué me haga falta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
    print "<body onload='document.forms.form1.idtel.focus()'>";
    print "<form action='recolec04.pl?fec=$dt&CGISESSID=$CGISESSID&fecha1=$fecha1&fecha2=$fecha2' ID='form1' onsubmit='return verificar();'>";

    print "<B>Fecha Inicial...........................:   ";
    print $fecha1 ;
    print "<BR>";
    print "<B>Fecha de Recoleccion.........:   ";
    print $fecha2 ;
    print "<BR>";
    print "ID-Telefono......:   ";
    print "<input type=text  name=idtel size=10 onkeypress='if(event.keyCode==13){document.forms.form1.imp.focus();return false;}'>";
    print "<BR>";
    print "Importe.............:   ";
    print "<input type=text  name=imp size=10 onkeypress='if(event.keyCode==13){document.forms.form1.done.focus();return false;}'>";
   print "<BR>";

    print hidden('CGISESSID', '$CGISESSID');
    print hidden('fecha1', '$fecha1');
    print hidden('fecha2', '$fecha2');
    print submit(-name=>'done', -value=>'Enviar');
# fin de la forma del documento
    print "</form>\n";
# fin del cuerpo del documento
    print "</body>\n";
 
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Gracias por la ayuda.

Negrazo
Negrazo
Perlero nuevo
Perlero nuevo
 
Mensajes: 100
Registrado: 2006-12-28 12:51 @577
Ubicación: Guadalajara, Mexico

Re: Aplicación web sin usar el ratón

Notapor explorer » 2010-02-15 04:46 @240

No, el problema no es el botón de envío del formulario. El problema está en que estás llamando a la URL 'recolec04.pl?fec=$dt&CGISESSID=$CGISESSID&fecha1=$fecha1&fecha2=$fecha2'. Es decir: estás pidiendo al navegador que solicite el recurso llamado 'recolec04.pl' con una serie de argumentos. Entonces, el navegador va al servidor y éste le dice que sí que tiene un recurso llamado así, y se lo da TAL CUAL.

En otras palabras: el problema está en el lado del servidor, que no está considerando a recolec04.pl como un CGI, si no como un fichero normal.

Debes ajustar la posición del CGI para que funcione como tal. Para comprobar que está bien puesto, prueba a colocar la URL en el navegador, en la barra de dirección, de forma manual, y mira a ver qué es lo que te devuelve.

Si la solución es meterlo en la carpeta cgi-bin/ (por ejemplo), entonces ajustas el URL de llamada: 'cgi-bin/recolec04.pl?fec=$dt&CGISESSID=$CGISESSID&fecha1=$fecha1&fecha2=$fecha2'.

A propósito, curiosa la forma de mezclar código HTML con código generado por CGI.pm, en el código :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados