• Publicidad

XML-CGI

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

XML-CGI

Notapor seafree » 2013-08-14 14:06 @629

Hola, buenas tardes. Uso un html conteniendo un calendario:

Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.         <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
  5.         <title>SIFAMEP CALENDAR</title>
  6.  
  7.         <!-- link calendar resources -->
  8.         <link rel="stylesheet" type="text/css" href="tcal.css" />
  9.         <script type="text/javascript" src="tcal.js"></script>
  10. </head>
  11. <body>
  12.         <form action="#">
  13.                 <!-- add class="tcal" to your input field -->
  14.                 <div><input type="text" name="fecha_sale" class="tcal" value="" /></div>
  15.         </form>
  16. </body>
  17. </html>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Paso lo anterior a un programa CGI en Perl y no muestra el icono del calendario a pesar de contar en la ruta correcta al directorio y archivo: img, tcal.js y tcal.css

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use CGI qw(:standard :netscape :shortcuts);
  3. use CGI::Carp qw(fatalsToBrowser);
  4. print header;
  5. print start_html(-title=>'HOLA XOC');
  6. my $JSCRIPT=<<EOF;
  7. EOF
  8. ;
  9. print<<"HTML";
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  11. <html xmlns="http://www.w3.org/1999/xhtml">
  12. <html>
  13. <head>
  14.         <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
  15.         <title>SIFAMEP CALENDAR</title>
  16.  
  17.         <!-- link calendar resources -->
  18.         <link rel="stylesheet" type="text/css" href="tcal.css" />
  19.         <script type="text/javascript" src="tcal.js"></script>
  20. </head>
  21. <body>
  22.         <form action="#">
  23.                 <!-- add class="tcal" to your input field -->
  24.                 <div><input type="text" name="fecha_sale" class="tcal" value="" /></div>
  25.         </form>
  26. </body>
  27. </html>
  28. HTML
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Le agradeceré me ayuden a encontrar el error porque no lo encuentro. Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: XML-CGI

Notapor explorer » 2013-08-14 14:32 @647

El problema está en el uso de referencias relativas:

<script type="text/javascript" src="tcal.js"></script>

Esa línea quiere decir que el archivo 'tcal.js' está en el mismo directorio en donde se está ejecutando el CGI. Pero... si el CGI está, por ejemplo, en /usr/lib/cgi-bin, lo normal es que no estén ahí, sino en el directorio principal del sitio.

Solución uno: usar rutas absolutas.

<script type="text/javascript" src="/tcal.js"></script>

Solución dos: agregar una etiqueta <base> al principio del HTML, que indique donde está la raíz de todos los recursos con ruta relativa. Dentro del <head>, pones

<base href="">

y dentro de las comillas pones el http://... de tu sitio web.

Este error debería haber aparecido en el error.log del servidor web.
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: XML-CGI

Notapor seafree » 2013-08-15 09:32 @439

Gracias, explorer, efectivamente tenía un problema con las rutas, pero ya quedó.

Saludos.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: XML-CGI

Notapor seafree » 2013-11-15 16:18 @721

Hola, explorer, me surgió otro inconveniente, el calendario me funciona bien, sin embargo surgió un nuevo requerimiento donde necesito pasar la fecha seleccionada a JavaScript con la finalidad de ejecutar un script utilizando Ajax, pero éste llega vacío. Lo anterior es así:

my $JSCRIPT=<<EOF;

function carga_eventos(sel1) {
var e_input = document.getElementById('sel1');
var e_value = e_input.value;
alert (' FECHA: ' + e_value);
//La fecha va vacía la primera vez, las siguientes veces ya envía el campo
}

<td colspan=4 bgcolor="#FFFFFF"><span class="style1">FECHA:</span>
<input type="text" size="13" name="date1" class="tcal" id="sel1" value="" onBlur="carga_eventos(this.value);">

Gracias, y ojalá que con tu ayuda podamos siempre pasar la fecha seleccionada desde su primera selección.

Saludos.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: XML-CGI

Notapor explorer » 2013-11-15 16:50 @743

El evento onBlur sólo se ejecuta cuando se carga la página y el cursor entra en el control editable.

Si sabes la fecha, entonces lo debes pasar en el campo value: value="$fecha", en el mismo código del HTML.
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: XML-CGI

Notapor seafree » 2013-11-19 11:19 @513

Hola, explorer, gracias por tu aclaración del evento onBlur, ahora entiendo. La fecha la desconozco porque ésta es elegida por los usuarios desde un calendario, ¿conocerás otra alternativa que me pueda apoyar?

Gracias por tu valioso apoyo, explorer.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: XML-CGI

Notapor explorer » 2013-11-19 12:58 @582

Si lo he entendido bien, se trata de recoger la fecha (seleccionada con el calendario), para que un JavaScript haga una llamada Ajax.

Bueno, un primer intento sería redefinir el evento onChange (en lugar del onBlur)) de ese control, para que cuando llegue la fecha del calendario, dispare la función JavaScript.
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: XML-CGI

Notapor seafree » 2013-11-19 14:53 @661

Sí, así es, el evento que usaba en un principio era el evento onChange pero no me pasaba los valores.
¿Alguna otra sugerencia?

Gracias, explorer.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: XML-CGI

Notapor explorer » 2013-11-19 15:18 @679

El dato de la fecha está en el propio control del formulario, así que debería ser posible acceder a él, mirando en el DOM.

Puedes probar a modificar el código del calendario...
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: XML-CGI

Notapor seafree » 2013-11-19 16:07 @713

De hecho el calendario ya lo modifiqué y sí obtengo la fecha en JavaScript, pero necesito el valor de otro select, previamente seleccionado. Intento leer el valor desde JavaScript pero creo que no lo estoy accediendo bien porque no puedo desplegar su valor. Solo muestro la fecha.

Bien, explico más a detalle mi caso: tengo dos select: valor1 y date1, y necesito enviar los dos valores para ejecutar una función de Ajax para mostrar los valores correspondientes. Solo tengo control sobre el select de la fecha(d1).

Les agradeceré su apoyo para tener el control de los dos select.

<HML>
<select id='v1' name='valor1'>

<span class="style1">FECHA:
<input size="13" type="text" name="date1" id="d1" class="tcal" value="">
</HTML>

JAVASCRIPT DEL CALENDARIO, EN ESTE PROGRAMA EXISTE LA FUNCIÓN f_tcalUpdate DESDE LA CUAL OBTENGO LA FECHA SELECCIONADA:

function f_tcalUpdate (n_date, b_keepOpen) {
d_date = new Date(n_date);
.
.
.
.
alert ("ELSE---b_keepOpen---" + d_date);
Hasta aquí despliego la fecha seleccionada pero ¿cómo despliego el valor1?
}
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Siguiente

Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado