web画面に動的に表示させたテキストのうち、選択した文字列をサーバー上のファイルに出力する
前提・実現したいこと
(1)web画面にアクセスするたびに表示されるテキストが変わるようなperl/cgiを組みました。
(2)そこに、選択した文字列をサーバー上のファイルに出力できる機能を追加したいです。
表示されるテキストのうち、選択文字列のみをサーバー上のファイルに出力し、
その上でaction属性で改めて同じcgiを読み込むことで、また違うテキストがweb画面上に表示され、
そこで表示されたテキストのうち選択文字列のみをサーバー上のファイルに出力・・・
を繰り返したいです。
発生している問題
https://javascript.programmer-reference.com/javascript-document-getselection/
こちらに記載があるような、選択文字列をjavascriptの変数に格納するやり方はわかったのですが、
script内の変数をperl上に引き継ぐというか、その方法がわかりません。
これができれば(1)と組み合わせるだけだと思うのですが。
全くの素人で申し訳ありませんが、よろしくお願いいたします。
該当のソースコード
#!/usr/local/bin/perl
use strict;
use CGI;
use List::Util;
my $q = new CGI;
###https://javascript.programmer-reference.com/javascript-document-getselection/
print "Content-Type: text/html;charset=utf8\n\n";
print "<!DOCTYPE html>
<html lang=\"ja\">
<head>
<meta charset=\"utf-8\">
</head>
<body>
<script>history\.forward\(\);</script>
<script>
function test\(\){
var tx = document\.getSelection\(\);
document\.getElementById\(\"area1\"\)\.innerText = tx;
}
</script>
";
my $file_out = "./out.txt";
open(W, ">> $file_out");
my $text = $q->param('hoge');
print W "$text\n";
close W;
print "
<p>文字列を選択した後にボタンを押すと、選択した文字列が下に表示されます。</p>
<input type=\"text\" id=\"txt1\" style=\"width:400px;margin:5px;\" value=\"つらい!\">
<input type=\"submit\" value=\" ボタン \" onclick=\"test();\" name = \"hoge\" style=\"width:100px;margin:5px;\" action=\"crowd_3_test.cgi\">
<div id=\"area1\" class=\"result\"></div>
</form>
";
補足情報 (OS, ツールのバージョンなど)
- Red Hat Enterprise Linux Server release 7.3(x86_64)
- Apache 2.4系
- GCC 4.8系
/usr/bin/gcc
- ruby 2系
/usr/bin/ruby
- Python 2.7系
/usr/bin/python
- PHP 5.6系
/usr/local/bin/php
- Perl 5.24
/usr/local/bin/perl
- Java J2SE8
/usr/bin/java