2016-03-22 8 views
-1

Ich bin für Perl CGI mit Javascript versuchen. Es ist schwierig für mich.Perl mit Javascript (Perlscript)

Versuche:

if ($lqcgi->param('sel_cl')){ 
     $selected_action = $lqcgi->param('sel_cl'); 
     print "<TR><script> document.write("<button type=\"button\" id=\"delete\">Delete</button>")</script>$line $ssh_command_flow User: $ENV{ REMOTE_USER }</TR>\n"; 
    } 

Ich weiß nicht, ob das richtig oder falsch ist. Bitte hilf mir. Vielen Dank.

+2

Unmöglich zu sagen, was Sie uns gegeben haben. Wir brauchen mehr Details darüber, was Sie tun und was Sie erreichen wollen. – Sobrique

+4

Es ist auch hilfreich, eine Frage zu stellen. :) – simbabque

+0

Ok. Beispiel: 'if ($ lqcgi-> param ('sel_cl')) { \t \t \t $ selected_action = $ lqcgi-> param ('sel_cl'); \t \t \t print " $ line $ ssh_command_flow Benutzer: $ ENV {REMOTE_USER} \ n"; \t \t \t print " \ n"; \t \t} ' – Markus

Antwort

2

Es ist schwer zu wissen, was Ihr Problem ist, da Sie tatsächlich keine Frage gestellt haben. Aber ich möchte nur darauf hinweisen, dass Sie eine Zeichenfolge mit doppelten Anführungszeichen haben, die doppelte Anführungszeichen enthält. Und nicht alle von ihnen sind korrekt entkommen.

Perl verfügt über den Operator qq(...), der die Erstellung von doppelten Anführungszeichen mit doppelten Anführungszeichen vereinfacht.

if ($lqcgi->param('sel_cl')){ 
    $selected_action = $lqcgi->param('sel_cl'); 
    print qq(<TR><script> document.write("<button type=\\"button\\" id=\\"delete\\">Delete</button>")</script>$line $ssh_command_flow User: $ENV{ REMOTE_USER }</TR>\n); 
} 

Update: Sie müssen auch die "\" s verdoppeln, so dass sie bis zum Javascript übergeben bekommen.

+1

Werden die Zeichen '' '' nicht als Perl-Escape-Zeichen behandelt, wenn sie JavaScript-Escape-Zeichen sind? – Quentin

+0

Absolut. Jetzt behoben. Danke, dass du es aufgezeigt hast. –