データベース用の Web ページを作成するために、Catalyst MVC フレームワークに取り組んでいます。私はフルタイムのプログラマーではありません。しかし、私は perl と java の基本を知っています。私は生物学者です。テーブルを持つテンプレートファイル(view.tt)を作成しました。このテーブルの内容を、もう 1 つのテンプレート ファイルに記述されている別のテーブルにリンクする必要があります。これら 2 つのテンプレートをリンクできません (URL を正しく生成できないため)。この問題を解決するために誰かが私を助けたり導いたりできますか?
次のコードは、2 番目のテンプレート ファイルのコードです。
<h4>Analyses Table</h4>
<table id="analysis_table" width="90%">
<thead>
<tr>
<th align="center" valign="center">Dataset</th>
<th align="center" valign="center">Tissue</th>
<th align="center" valign="center">Expression</th>
<th align="center" valign="center">Analysis</th>
</tr>
</thead>
<tbody>
[% FOREACH result IN plets -%]
[% IF result.analysistypename == 'Cancer' -%]
[% matches = result.datasetname.match('(\w+) (\w+)') %]
<tr>
<td align="left" valign="top">[% result.datasetname %]</td>
<td align="left" valign="top">[% result.expression %]</td>
<td align="left" valign="top">[% result.datatype %]</td>
<td align="left" valign="top">[% result.generankpercentile %]</td>
</tr>
[% END -%]
[% END -%]
</tbody>
<tfoot>
<tr>
<th align="center" valign="center">Dataset</th>
<th align="center" valign="center">Tissue</th>
<th align="center" valign="center">Expression</th>
<th align="center" valign="center">Analysis</th>
</tr>
</tfoot>
</table>
次のコードは、ハイパーリンクするテーブル (view.tt) を持つ最初のテンプレートにあります。
<h4>Analyses Summary table</h4>
<table id="score_table" width="50%">
<thead>
<tr>
<th align="centre" valign="centre"> Analysis Type</th>
<th align="centre" valign="centre">Score</th>
</tr>
</thead>
<tbody>
[% FOREACH score IN gene.whs -%]
[% plots = [ ['Cancer', score.cancer_vs_normal_over, score.cancer_vs_normal_under],
['Bladder cancer', score.bladder_cancer_over, score.bladder_cancer_under],
['Brain and CNS cancer', score.brain_and_cns_cancer_over, score.brain_and_cns_cancer_under],
['Breast Cancer', score.breast_cancer_over, score.breast_cancer_under],
['Cervical Cancer', score.cervical_cancer_over, score.cervical_cancer_under],
['Colorectal cancer', score.colorectal_cancer_over, score.colorectal_cancer_under],
]
%]
[% FOREACH plot IN plots %]
<tr>
<td> [% pl0t.0 %]</td>
<td> [% pl0t.1 %] </td>
<td> [% pl0t.2 %] </td>
<td> [% (pl0t.1 + 5 ) / (plot.2 + 5) | format('%5.2f') %] </td>
</tr>
[% END %]
[% END %]
</tbody>
<tfoot>
<tr>
<th align="centre" valign="centre"> Analysis Type</th>
<th align="centre" valign="centre">Score</th>
</tr>
</tfoot>
</table>
こんにちはRet、どうもありがとう、返信が遅くなってすみません。あなたが理解しているように、私の目的は、集計テーブルと結果がロードされた 2 番目のテーブルとの間に「ライブ」リンクを作成することです。どういうわけか、別の方法でテンプレートをリンクしました。最初のテンプレートを 2 番目のテンプレートにハイパーリンクする必要がありました。私のハイパーリンクは、このような foreach ループにあります。
[% FOREACH plot IN plots %]
<tr>
<td><a href="[% c.uri_for(c.controller('gene').action_for('sample'))%]/[% plot.0 %]>[% plot.0 %]</a></td>
<td> [% pl0t.1 %] </td>
<td> [% pl0t.2 %] </td>
<td> [% (pl0t.1 + 5 ) / (plot.2 + 5) | format('%5.2f') %] </td>
</tr>
[% END %]
この行は、2 番目のテンプレート (sample.tt) に正しくリンクしています。2 番目のテンプレートには、一連のテーブルが含まれています。最初のテーブルでハイパーリンクをクリックすると、そのリンクに対応するテーブルが表示されます。テンプレートのリンクに成功しました。テンプレートをリンクする目的でも、コントローラー (gene.pm) にサブルーチンを作成しました。私は自分の目標を達成する上で問題に直面しています。2 番目のテンプレート (sample.tt) の html 部分は正常に機能していますが、テンプレート ツールキットは機能していません。URL の変更は確認できますが、ページには反映されません。
以下は、2 番目のテンプレートのサブルーチンです。
sub sample :Path('sample'):Args(1) {
my($self,$c,$plot)=@_;
my @plets = $c->model('GeneDB::genewhs')->search({
Analysistypename => @plet,
});
$c->stash->{plets}=\@plets;
$c->stash->{template}='gene/sample.tt';
}
質問が明確でない場合は、お知らせください...私はそれを明確にする義務があります..
前もって感謝します..