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):
Using perl Syntax Highlighting
- use CGI qw/:standard/;
- use CGI::Carp qw(fatalsToBrowser);
- my $CAMPO1 = $cgi->param("CAMPO1");
- my $CAMPO2 = $cgi->param("CAMPO2");
- my $q = new CGI;
- my $cgi = new CGI;
- print $q->header;
- print <<ENDHTML;
- <html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <style type="text/css">
- <!--
- body {
- background-color: #BFBFBF;
- }
- -->
- </style>
- <head>
- <title>Pruebas</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- <link href="../pantilla.css" rel="stylesheet" type="text/css">
- <script language="javascript" type="text/javascript">
- function ValidateForm(){
- var t1 = document.getElementById("CAMPO1").value.split("\n"),
- t2 = document.getElementById("CAMPO2").value.split("\n"),
- notIn2 = [];
- for(var i = 0; i < t1.length; i++) {
- if(t2.indexOf(t1[i]) == -1) {
- notIn2.push(t1[i]);
- }
- }
- alert(notIn2);
- return false;
- };
- </script>
- </head>
- <body>
- <table width="661" height="259" border="0">
- <tr>
- <td>
- <p> </p>
- <LABEL class=hh3><p><strong><center>Textareas</center></strong></p></LABEL>
- <table border="0" summary="tabla" align="center">
- <tr><td><form onSubmit="return validateForm()" name="input" action="/cgi-bin/PRUEBAS.pl" method="post">
- <LABEL class=h4>Autorizar:</LABEL></td>
- <td><LABEL class=h4>Lista_accesos:</LABEL></td>
- <tr><td width="83" rowspan="1"><textarea name="CAMPO1" cols="10" rows="10" class="W" id="CAMPO1" tabindex="1"></textarea></td>
- <td width="107" rowspan="1"><textarea name="CAMPO2" cols="10" rows="10" class="W" id="CAMPO2" tabindex="1">
- ENDHTML
- foreach my $num(@campos){
- chomp($num);
- print "$num\n";
- }
- print <<ENDHTML;
- </textarea></td>
- <td colspan="15"><center><input name="Procesar" id="Boton" value="Procesar" type="Submit"> </center></form></tr></td></table>
- ENDHTML
- if ($CAMPO1 eq ""){
- print qq{
- </table>
- </td>
- </tr>
- </table>
- </body>
- </html>
- };
- }
- else{
- continua;
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4