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

问题描述 投票:-1回答:1

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

$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);

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

modx-revolution
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.