我正在爲Catalyst MVC框架創建數據庫的網頁。我不是全職程序員。但是我知道perl和java的基本知識。我是一名生物學家。我寫了一個有表格的模板文件(view.tt)。我需要將此表的內容鏈接到另一個表中,該表另外再寫入一個模板文件。我無法鏈接這兩個模板(因爲我無法正確生成網址)。任何人都可以幫助或指導我解決此問題。從另一個模板調用模板
以下代碼是用於第二模板文件:
<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>
Hi Ret,非常感謝,並且對於遲到的回覆感到抱歉。正如你所理解的,我的目標是在彙總表和第二個加載了結果的表之間建立一個「實時」鏈接。我以某種方式以另一種方式鏈接模板。我必須在第一個模板中超鏈接到第二個模板。我的超鏈接在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 %]
此行正確鏈接到第二個模板(sample.tt)。第二個模板包含一系列表格。當在第一個表上單擊超鏈接時,應該顯示與該鏈接對應的表。我已成功鏈接模板。我在控制器(gene.pm)中創建了一個子例程,用於鏈接模板。我在實現自己的目標方面遇到了問題。第二個模板(sample.tt)中的html部分運行正常,但模板工具箱不起作用。我能夠看到url中的變化,但在頁面中沒有反映出來。
下面是第二個模板子程序:
sub sample :Path('sample'):Args(1) {
my($self,$c,$plot)[email protected]_;
my @plets = $c->model('GeneDB::genewhs')->search({
Analysistypename => @plet,
});
$c->stash->{plets}=\@plets;
$c->stash->{template}='gene/sample.tt';
}
如果萬一的問題是不明確的,請讓我知道...我將不得不清除它..
謝謝提前...
嗨Ret,非常感謝,很抱歉,遲到的答覆。正如你所理解的,我的目標是在彙總表和第二個加載了結果的表之間建立一個「實時」鏈接。我以某種方式以另一種方式鏈接模板。我必須在第一個模板中超鏈接到第二個模板。 – user1462804 2012-07-14 05:17:47