(Perl) Не могу разобраться с переменными

Anna85
Дата: 29.08.2006 10:39:44
Не могу разобраться с переменными num_docs и NUM_DOC_IN_EERD и NUM. А вообще данная программа представляет собой таблицу с несколькими записями, в ней есть 2 ссылки редактировать и удалить. Проблема с ссылкой удалить. Вроде бы все описала, а с переменными сама запуталась. Может посмотрите свежим взглядом?

#!c:/perl/bin/perl
#!/usr/bin/perl             

$Root = "c:/www";

use CGI;
use DBI;            

$Query = new CGI;
$syslog="c:/www/data/people";
$Query->charset('koi8-r');
$NUM = $row->{'NUM'}; 

sub  PrintMainForm()
{
  print <<"EOT";
   <FORM NAME="mainform" ACTION="$Foto" METHOD="post" ENCTYPE="multipart/form-data">
   <INPUT name="sessionid" type="hidden" value="$SessionId">
   <INPUT name="NUMSS" type="hidden" value="$d">
   <INPUT name="num_docs" type="hidden" value="">
   <INPUT name="NUM_DOC_IN_EERD" type="hidden" value="">

EOT

}


 $d = $Query->param( "num_docs" );
                           
 if( defined $d )
  {  



print "<b>DELETE * FROM document WHERE NUM='$d'</b>";
$sth = $dbh->prepare("DELETE * FROM document WHERE NUM='$d'") or die "Cannot prepare: " . $dbh->errstr();
$sth->execute() or die "Cannot execute: " . $sth->errstr();




Сама ссылка на удаление выглядит следующим образом

$sth = $dbh->prepare("SELECT * FROM document ORDER BY NUM") or die "Cannot prepare: " . $dbh->errstr();
$sth->execute() or die "Cannot execute: " . $sth->errstr();
while ( $row = $sth->fetchrow_hashref)

  {
   $NUM = $row->{'NUM'};
   $NUM_DOC_IN_EERD = $row->{'NUM_DOC_IN_EERD'}; 
   PrintMainForm();
    print <<"EOT";

    <td>
 <OPTION><A HREF="#" onClick="mainform.target='_self';mainform.direction.value='$NUM_DOC_IN_EERD';mainform.NUM_DOC.value=$NUM;mainform.submit();return false;"><B>Редактировать</B></A></OPTION>


    </td>

EOT
   print <<"EOT";

    <td>
     <OPTION><A HREF="#" onClick="mainform.target='_self';mainform.NUM.value='$NUM_DOC_IN_EERD';mainform.num_docs.value=$NUM;mainform.submit();return false;"><B>Удалить</B></A></OPTION>   
    </td>

EOT

Программа выдает ошибку при нажатии на ссылку удалить

mainform.NUM есть null или не является объектом
Black
Дата: 29.08.2006 10:43:38
причем тут PERL?
У вас поле названо NUM_DOC_IN_EERD а в JS Вы пишите mainform.NUM.value='$NUM_DOC_IN_EERD', разницу видите?
Anna85
Дата: 29.08.2006 10:47:38
я с перлом совсем недавно, можете называть меня как хотите, но разницу я не вижу, разьве только что в $ ?
Black
Дата: 29.08.2006 10:49:29
Anna85
я с перлом совсем недавно, можете называть меня как хотите, но разницу я не вижу, разьве только что в $ ?

У Вас ошибка в скрипте написанном на JavaScript!
Поле называется NUM_DOC_IN_EERD, Вы пишите mainform.NUM.value='$NUM_DOC_IN_EERD', разве не видите, что имена разные?
Следует заменить на mainform.NUM_DOC_IN_EERD.value='$NUM_DOC_IN_EERD'
Anna85
Дата: 29.08.2006 10:53:44
Теперь пишет

mainform.NUM_DOC_IN_EERD есть null или не является объектом

Может нужно переменную NUM_DOC_IN_EERD где то раньше описать?
Black
Дата: 29.08.2006 11:01:11
Anna85
Теперь пишет

mainform.NUM_DOC_IN_EERD есть null или не является объектом

Может нужно переменную NUM_DOC_IN_EERD где то раньше описать?

Это не переменная, это имя элемента на странице! ( в Вашем случае скрытого поля )
Покажите полностью отредактированную строчку.
Anna85
Дата: 29.08.2006 11:03:09
Вот польностью эта строка:

     <OPTION><A HREF="#" onClick="mainform.target='_self';mainform.NUM_DOC_IN_EERD.value='$NUM_DOC_IN_EERD';mainform.num_docs.value=$NUM;mainform.submit();return false;"><B>Удалить</B></A></OPTION>   
Black
Дата: 29.08.2006 11:34:59
должно работать .. либо Вы предоставили неверную информацию ...
Black
Дата: 29.08.2006 11:44:45
Модератор: Сообщение удалено, читайте правила форума!
Если Вы хотите показать код большого размера, прикрепляйте в файле!
Anna85
Дата: 29.08.2006 11:48:59
Все равно не работает, вот полный код программы, мне кажется может этого из-за того что я неправильно расставляю переменные в программе, или одна перебивает другую. Может быть в полном коде будет понятнее...