Modx TV值显示在ajax $ .post中来自chunk的片段调用中,但在1秒后不在同一块中

时间:2017-12-17 10:56:25

标签: modx-revolution

我在资源ID 3中有一个块,它对ajax空模板资源id 1进行$ .post调用,其内容中包含片段调用,该调用为资源中的TV id 2分配值id 3然后成功(!)立即显示

$id_resource = $modx->getObject('modResource', 3);
$id_tv = 2;
$value = serialize($items);

$tv = $modx->getObject('modTemplateVar',array('id'=>$id_tv));
$tv -> setValue($id_resource, $value);
$tv->save();

$res = $modx->getObject('modResource',array('id'=>$id_resource));
echo $res->getTVValue($id_tv);

但是当我尝试在1秒钟内在 [[* name_of_tv_id_2]]的同一块中创建一个setTimeout警报时,我什么都没得到。并没有什么能够获得电视价值,这似乎已经在ajax电话中成功设定。我用

尝试了一个片段[[!getTV]]
$id_resource = $modx->getObject('modResource', 3);
$id_tv = 2;

$res = $modx->getObject('modResource',array('id'=>$id_resource));
echo $res->getTVValue($id_tv);

但没有。我有什么不对的想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我找到了答案。必须在其内容中使用片段调用创建另一个空模板ajax资源(需要使用pdoTools扩展来使代码段使用javascript值,即[[!custom_snippet?& post_var1 = [[!#POST.javascript_var1]]]]),以及作为$ .post调用从块到此ajax资源执行。这是因为块中的片段在显示块之前被处理,并且在之后无法处理。