Php 如何使用ajax运行CookieList(MODx扩展)
请向我解释如何使用ajax运行snippet CookieList 我尝试了下一步:Php 如何使用ajax运行CookieList(MODx扩展),php,ajax,modx,modx-revolution,Php,Ajax,Modx,Modx Revolution,请向我解释如何使用ajax运行snippet CookieList 我尝试了下一步: 1.已创建代码段ajaxCookieList: <?php if (isset($_POST["action"])) { $values = $modx->runSnippet('addToCookieLIst',array( 'value' => $_POST['action'] )); $output = $modx->runSnippet('
1.已创建代码段ajaxCookieList:
<?php
if (isset($_POST["action"])) {
$values = $modx->runSnippet('addToCookieLIst',array(
'value' => $_POST['action']
));
$output = $modx->runSnippet('pdoResources',[
'parents' => 6,
'resources' => $values,
'tpl' => 'popup.favorites.item',
'includeTVs' => 'header.bgImage,franchise.logo,franchise.price,title,subtitle',
'prepareTVs' => '1',
'hideContainers' => '1'
]);
return $output;
}
在这种情况下我通常会做什么:
我在服务页面上放置了一个代码片段调用([[!ajaxCookieList]]
)
可通过类似URL/带有代码段的页面访问/
在JS(ajax)中,我使用向其发送参数的URL
代码段必须获取我发送的参数。所以,我真的这样称呼它:[[!ajaxCookieList?&action=
[!\#POST.action]]
可以这样访问代码段中的参数:$option=$modx->getOption('action',$scriptProperties,'default_value',true)代码>
我在片段中做我的事情
但在你的情况下,我认为,一切都可以简单一些。您可以使用其中一个pdoTools代码段,如果我没有弄错,您可以将pdoResources代码段调用放在一个页面(/page with snippet/)上,如下所示:
[[pdoResources?
&parents=`6`
&resources=`[[!addToCookieLIst? &value=`[[!#POST.action]]` ]]` // your snippet should return comma-separated list of resources` ids that you pass then to pdoResources
&tpl=`popup.favorites.item`
&includeTVs=`header.bgImage,franchise.logo,franchise.price,title,subtitle`
&prepareTVs=`1`
&hideContainers=`1`
]]
现在,您可以通过AJAX将参数发送到此页面(/page with snippet/),并获得结果(如果有)。我希望我没有弄糟任何东西-你最好再检查一遍,但你至少得到了这样的想法:)顺便说一句,在modx.com上检查一下,它教你如何编写一个好的代码片段
还有另一个小问题:正如已经指出的,使用window.location
比document.location
更可取。location
这是我做的另一个解决方案。我用过。希望您能理解我的代码并为自己定制
谢谢大家:)非常感谢!我会的!