我正在使用PHPTAL1.2.2模板页面是template.tpl
<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;
}
?>我在ie中得到了一个错误,比如“尝试在24行的C:\Windows\Temp\tpl_4d6be820_formonline1__HAfMCyjTSQl6RgUTRjXcHA.php中获取非对象的属性”。
但在火狐和chrome中,它运行得很好,但我查看源代码时发现,除了这个标签之外,它还有很多html代码。
发布于 2011-03-02 00:35:57
这样的错误只发生在php:前缀表达式中,所以它可能是关于php:field.value的。看看field是否是一个对象。如果它是一个数组,那么你需要php:field['value']。如果它可以是空的,那么你需要检查它。
发布于 2013-09-16 11:26:23
当我将一个字符串连接到echo语句时,也会发生这种情况。该变量即被赋值。
if($des != NULL)
echo '<p><a href="javascript:rightgroupnav()">'.$des->name.'</a></p>';这行代码可以在Chrome和Firefox中使用。但不是not浏览器。我也尝试用这种方式来测试它
<p><?=$des->name?></p>这是可行的,我希望它能对你有所帮助。有人知道为什么他们看起来解析数据的方式不同吗?
https://stackoverflow.com/questions/5150473
复制相似问题