We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 13384
    • 20 Posts
    Bonjour,

    j’ai ecrit un snippet qui devrait me retourner 2 valeurs, ou du moins un tableau associatif contenant 2 valeurs :

    $retour = array(’Prix’=>$prix,’Code’=>$code);
    return $retour;

    Or il me retourne la chaine de caracteres Array.

    Ne peut on retourner un tableau avec un snippet?

      • 11975
      • 2,542 Posts
      salut,

      Quote from: jacxof at Nov 15, 2006, 11:36 AM

      Bonjour,

      j’ai ecrit un snippet qui devrait me retourner 2 valeurs, ou du moins un tableau associatif contenant 2 valeurs :

      $retour = array(’Prix’=>$prix,’Code’=>$code);
      return $retour;

      Si c’est là tout ton code, c’est normal il ne peut rien arriver d’autre.

      return print_r($retour);


      t’affichera le contenu du tableau

      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 13384
        • 20 Posts
        Merci, ;-)
        Mais je ne veux pas afficher le contenu du tableau, je voudrais réccuperer les valeurs du tableaux pour faire des calculs dessus! (dans d’autres snippets!) :

        $tmp = $modx->runSnippet(’_PrxPort10’,array(’pdsCmd’=>$pdsTot));

        Or, $tmp[’Prix’] contient A; et $tmp[’Code’] aussi!
        Et si je fait $tmp[0] j’ai A, $tmp[1] contient r, etc...

          • 11975
          • 2,542 Posts
          Salut,

          faut pas m’en vouloir pour le print_r grin

          Je pense qu’il y a certainement plusieurs façon de faire.
          As tu essayé avec les placeholders, cad stocker le résultat de ta snippet dans une variable
          $modx->setPlaceholder($name,$value);

          et $modx->getPlaceholder($name);

          :-)


          P.S: pour l’orthographe exact des fonctions regarde dans document.parser.inc.php
            Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
            • 13384
            • 20 Posts
            Merci smiley
            Alors voila la solution :

            Code du snippet _PrxPort10 :

            ....
            $modx->setPlaceholder(Code10, $code);
            $modx->setPlaceholder(Prix10, $prix);      
            //Attention : 
            //dans la doc : setPlaceholder($name, $value); mais il ne faut pas de "$" devant le nom de la variable $name !! sinon, ca ne marche pas!
            



            Code du snippet appelant :

            ...
              //appel du snippet _PrxPort10 avec passage de parametre pdsCmd 
            $modx->runSnippet('_PrxPort10',array('pdsCmd'=>$pdsTot));
              //Recuperation des placeholders 
            $tmpPrix = $modx->getPlaceholder(Prix10);
            $tmpCode = $modx->getPlaceholder(Code10);
            


            Si on veut récuperer ces valeurs dans une page directement :

            ...
              //appel du snippet _PrxPort10 avec passage du parametre pdsCmd 
            [!_PrxPort10? &pdsCmd=10!]
              //Recuperation des placeholders 
            <p>Prix=[+Prix10+] et Code=[+Code10+]</p>
            


            Voila, un grand merci pour votre aide! wink