是template.tplPHPTAL -Trying同時使用我使用PHPTAL 1.2.2 模板頁面宏
<form>
<div tal:repeat="field fields">
<tal:block tal:define="name repeat/field/key" metal:use-macro="${field/type}" />
</div>
</form>
<tal:block metal:define-macro="text">
<label>${field/label}</label><input name="${name}" type="text" value="${field/value}" />
</tal:block>
<tal:block metal:define-macro="select">
<label>${field/label}</label><select name="${name}">
<tal:block tal:repeat="value field/valuelist">
<option tal:condition="php:field.value != value" value="${value}">${value}</option>
</tal:block>
</select>
</tal:block>
而且我的PHP頁面來獲得非對象的屬性是
<?php
require_once 'PHPTAL.php';
$fields = array(
'name' => array('label'=>'Name','type'=>'text','value'=>'Test User'),
'user' => array('label'=>'Age','type'=>'select','valuelist'=>array(1,2,3),'value'=>2) ,
);
$t = new PHPTAL('tempalte.tpl');
$t->fields = $fields;
try {
echo $t->execute();
}
catch (Exception $e){
echo $e;
}
?>
我得到了一個錯誤,即作爲「試圖獲得非線對象的屬性在C:\ Windows \ Temp \ tpl_4d6be820_formonline1__HAfMCyjTSQl6RgUTRjXcHA.php在線24」
但在Firefox和鉻它工作很好,但我認爲源代碼中除了標籤外,還有很多html代碼。
嘗試強制tal模板不緩存,看看它是否會在該點工作。 – 2011-03-01 05:23:55