Php 如何使用ajax运行CookieList(MODx扩展)

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('

请向我解释如何使用ajax运行snippet CookieList

我尝试了下一步:
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

    这是我做的另一个解决方案。我用过。希望您能理解我的代码并为自己定制

  • 创建代码段

  • 粘贴到您的custom.js文件中

  • 资源的简单标记。将其插入块中:


  • 谢谢大家:)

    非常感谢!我会的!