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

    ik wil een template variable maken om een rolmenu met databasewaarden te maken.

    Ik maak de TV - kies voor Dropdown list menu + een @SELECT binding in input options (+ook al geprobeerd in default values).

    De [*tvnaam*] geeft mij nooit een rolmenu in mijn documenten (ftontend) . Enkel de waarden uit de db "waarde1 || waarde2 etc."
    in de manager is het wel een rolmenu...

    Iemand een idee?

    thx
      • 30223
      • 1,010 Posts
      TV’s zijn ondermeer bedoeld om in de manager waarden te kunnen kiezen. De dropdown input keuze geeft je dus een rolmenu in de manager.

      Als het dus je bedoeling is dat je in de manager een keuze kunt maken welke waard(n) in de frontend beschikbaar zullen zijn (per pagina) dan is een TV de juiste manier. Als je echter alleen een dropdown box in de fromtend wilt hebben dan is een TV wellicht niet de beste keuze en kun je beter een snippet schrijven.

      Met TV’s, om de output in de frontend een bepaad formaat te geven kun je een keuze maken uit de verschillende beschikbare TV widgets. Als er geen widget is voor jouw doeleinde kun je wederom een snippet schrijven welke de waarde(n) van de TV binnenhaalt en daarvan een dropdown box opbouwt.

      Voorbeeld: Gebruik de Comma Delimited List widget.
      <?php
      //get the values of the TV 
      $values = $modx->getTemplateVarOutput(array('TvVarName'));
      //build dropdown box
      if( $values ){
         $output = '<select name="mySelect">';
         foreach( explode(',',$values) as $v )
            $output .= '<option value="'.$v.'">'.$v.'</option>';
         $output .= '</select>';
      }
      
      return $output;
      ?>
      



      Een beetje simpel voorbeeld maar wellicht stuurt het je in de juiste richting.
        • 34162
        • 1 Posts
        Ik probeer eens.

        thx
          • 2896
          • 70 Posts
          Ik heb het eens geproeerd en ik slaag er in om een rolmenu te krijgen alleen staat in het rolmenu (frontend) altijd "Array" en niet mijn waarden.

          Ik heb enkel in die code van jou de naamvan mijn TV gezet.

          "$values = $modx->getTemplateVarOutput(array(’waardenInf’));"

          Met die TV waardeninf heb ik al vanalles geprobeerd: invoertypes "text - dropdown list" met telkens de @selec binding zowel op invoer als standaard waarden. Als weergave type kies ik "delimited list" + delimiter een comma ,

          Hoe zou dit komen?
            • 30223
            • 1,010 Posts
            Dat geeft aan dat de waarde die je in PHP uitprint een array is and geen zg scalar variabel.

            Probeer te begrijpen wat er gebeurt... Hoe ziet de output van de tv eruit? Plaats allereerst je TV direct in een pagina met [*TVnaam*]. Maak een keuze in de TV in de manager voor dat document en zie dan wat de output is in de front-end. Speel hier wat mee zodat je een inzicht krijgt wat voor soort waarden je kunt verwachten.

            In je snippet waar je de TV aanroept moet je nu deze waarden in script omzetten naar het formaat dat je nodig hebt in je rollmenu.
              • 2896
              • 70 Posts
              Ik heb dit getest:
              ik begrijp nu beter de werking van de TV’s. Thx

              Mijn TV met rolmenu optie plaatst in de frontend de correcte optie die ik via backend kies. Ook met de andere formaten van de TV zit het OK

              Alleen is het dat omzetten van de waarden naar het formaat in mijn rolmenu dat niet direct lukt. Ik ben geen php programmeur, ik leg het eens voor aan een collega php programmeur.

              Dat voorbeeld van jouw code geeft (array(’TVname’)) --> ik heb daar al $TVname en andere dingen geprobeerd maar geen succes.