Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » CGI, javascript y check de formulario  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 8 mensajes ] 
 
Nota 2012-01-16 07:30 @354

Perlero Nuevo
Registrado: 2011-07-15 06:38 @318
Mensajes: 42
CGI, javascript y check de formulario
¡Hola!

Antes de nada, aviso que no tengo demasiada experiencia en desarrollo web...

Tengo un CGI con 2 textareas, en una de ellas, el usuario escribe unos datos, y en la otra hay unos datos que escribe el propio cgi.

Necesito que cuando hagan clic en el botón de submit, se compruebe que todas y cada una de las líneas que ha escrito el usuario en el textarea 1, existan en el textarea 2.

Tengo un código JavaScript que hace la comprobación, pero no me funciona, me da un error: "Constante de cadena sin determinar", y tampoco sé cómo puedo hacer la depuración de este error...

El código JavaScript que estoy usando es este: http://jsfiddle.net/2EFTZ/2/

¿Cómo puedo meter este código al CGI? Está entre <head> y </head>, pero no funciona. No es capaz de mostrarme los campos del textarea 1, que no existen en el 2.

La idea sería que hasta que no se corrijan los campos del textarea 1 que no están en el 2, no deje hacer el submit.

La pregunta es, ¿esto lo puedo hacer con CGI? Creía que sí, pero no consigo hacerlo funcionar...

Una porción de mi código es esto (es posible que haya algo que no tenga mucho sentido, es código recortado, pero espero que se entienda la esencia de lo que quiero hacer):

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. use CGI qw/:standard/;
  2. use CGI::Carp qw(fatalsToBrowser);
  3.  
  4. my $CAMPO1 = $cgi->param("CAMPO1");
  5. my $CAMPO2 = $cgi->param("CAMPO2");
  6. my $q  = new CGI;
  7. my $cgi = new CGI;
  8. print $q->header;
  9.  
  10.  
  11. print <<ENDHTML;
  12. <html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  13.  
  14. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  15. <style type="text/css">
  16. <!--
  17. body {
  18.         background-color: #BFBFBF;
  19.  
  20. }
  21. -->
  22. </style>
  23. <head>
  24. <title>Pruebas</title>
  25.  
  26. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  27. <link href="../pantilla.css" rel="stylesheet" type="text/css">
  28. <script language="javascript" type="text/javascript">
  29.  
  30. function ValidateForm(){
  31.     var t1 = document.getElementById("CAMPO1").value.split("\n"),
  32.         t2 = document.getElementById("CAMPO2").value.split("\n"),
  33.         notIn2 = [];
  34.     for(var i = 0; i < t1.length; i++) {
  35.         if(t2.indexOf(t1[i]) == -1) {
  36.             notIn2.push(t1[i]);  
  37.         }
  38.     }
  39.     alert(notIn2);
  40.         return false;
  41. };
  42. </script>
  43.  
  44. </head>
  45. <body>
  46. <table width="661" height="259" border="0">
  47.   <tr>
  48.     <td>
  49. <p>&nbsp;</p>
  50. <LABEL class=hh3><p><strong><center>Textareas</center></strong></p></LABEL>
  51. <table border="0" summary="tabla" align="center">
  52. <tr><td><form onSubmit="return validateForm()" name="input" action="/cgi-bin/PRUEBAS.pl" method="post">  
  53. <LABEL class=h4>Autorizar:</LABEL></td>
  54. <td><LABEL class=h4>Lista_accesos:</LABEL></td>
  55. <tr><td width="83" rowspan="1"><textarea name="CAMPO1" cols="10" rows="10" class="W" id="CAMPO1" tabindex="1"></textarea></td>
  56. <td width="107" rowspan="1"><textarea name="CAMPO2" cols="10" rows="10" class="W" id="CAMPO2" tabindex="1">
  57. ENDHTML
  58. foreach my $num(@campos){
  59.         chomp($num);
  60.         print "$num\n";
  61. }
  62. print <<ENDHTML;
  63. </textarea></td>
  64. <td colspan="15"><center><input name="Procesar" id="Boton" value="Procesar" type="Submit"> </center></form></tr></td></table>
  65. ENDHTML
  66.  
  67.  
  68. if ($CAMPO1 eq ""){
  69.         print qq{
  70.                 </table>
  71.                 </td>
  72.                 </tr>
  73.                 </table>
  74.                 </body>
  75.                 </html>
  76.         };
  77. }
  78. else{
  79.  
  80.         continua;
  81. }


Nota 2012-01-16 07:43 @363
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: CGI, javascript y check de formulario
En la línea 80, has puesto "continua;", cuando quizás deberías haber puesto "continue;".

Si tienes activado

use strict;
use warnings;
use diagnostics;


al principio del fichero, será Perl el que te diga dónde encuentra los errores. Como tienes puesto el CGI::Carp, esos errores saldrán en la página web, además de en los registros de actividad del servidor web.

_________________
JF^D Perl programming


Nota 2012-01-16 08:12 @383

Perlero Nuevo
Registrado: 2011-07-15 06:38 @318
Mensajes: 42
Re: CGI, javascript y check de formulario
continua está bien, es la llamada a la sub() que continúa el proceso.

Ni poniendo strict, diagnostics o warnings soy capaz de ver ningún error en el navegador :S


Nota 2012-01-16 10:10 @465
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: CGI, javascript y check de formulario  RESUELTO
Pero si nos has dicho que te sale un error... "Constante de cadena sin determinar".

¿Dónde sale? ¿En la consola de errores JavaScript del Firefox? Entonces puede ser un error de JavaScript. Allí te dirá en qué línea ha detectado el error, otro dato importante que no sabemos.

_________________
JF^D Perl programming


Nota 2012-01-17 03:59 @207

Perlero Nuevo
Registrado: 2011-07-15 06:38 @318
Mensajes: 42
Re: CGI, javascript y check de formulario
Sí, el error lo muestra el navegador (Iexplorer) en su consola de errores.

Estaba haciendo las pruebas con Internet explorer, que es el navegador en el que se va a utilizar la aplicación y...

Me diste una idea. Probar la aplicación en Firefox. Y funciona a la perfección.
El problema lo tengo con el infumable ie6, la porción de código JavaScript no funciona >.<

En esta línea:
Syntax: [ Download ] [ Hide ]
Using javascript Syntax Highlighting
  1.         if(t2.indexOf(t1[i]) === -1) {
dice que el objeto no acepta esta propiedad o método.

Al menos vi que el problema no es mío, es de Ie :) :? . A ver si doy con el arreglo,

¡Gracias!


Nota 2012-01-17 05:47 @282
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: CGI, javascript y check de formulario
¿¿¿ El Internet Explorer v6???

¿¿¿ Pero si es de hace 11 años ???

Ya ni siquiera tiene soporte de la empresa.

¿No sería mejor instalar la última versión del Explorer?

Es más... ¿No es más cómodo instalar la última versión del Firefox? O incluso del Chrome...

Total, en unos pocos minutos se baja e instala en cualquier Windows. Y para los desarrolladores como nosotros, el Firefox es una plataforma formidable para comprobar las páginas, gracias a sus muchos complementos, como el increíble Web Developer o el Firebug.

Y ya no vale la excusa de que Internet Explorer es lo más usado, ya que no es así.

_________________
JF^D Perl programming


Nota 2012-01-17 10:38 @485

Perlero Nuevo
Registrado: 2011-07-15 06:38 @318
Mensajes: 42
Re: CGI, javascript y check de formulario
Ojalá pudiera no depender del ie6. Por desgracia, en muchas empresas, se sigue plataformando los PC con ie6, supongo que porque dichas empresas tendrán hecho algún desarrollo que solo funcione correctamente en ese navegador.

Es de todas, todas, subrealista: es un browser inseguro y antiguo, que no cumple las necesidades actuales ni de los desarrolladores, ni de los usuarios finales.

Yo siempre uso Firefox, con Noscript, Firebug y algún otro addon más. Pero si es trabajo, y tengo que programar por narices para ie... pues las pruebas procuro ir haciéndolas con él también (aunque más de una vez recurro a Firebug :D )

Por cierto, por si le sirve a alguien... indexOf() e ie6.. no se llevan nada bien. Al final he optado por usar jQuery, con su Jquery.InArray, y funcionando.

¡Saludos!


Nota 2012-01-17 12:31 @563
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: CGI, javascript y check de formulario
Imagen

_________________
JF^D Perl programming


Responder al tema  [ 8 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO