hi. nuublet here.

`let x = “PerchanceListA”

[x]`

how do i have it retrieve PerchanceListA instead of a list named x?

I bet it’s something simple like some evaluateScript thing but i don’t know because I’m a noob :)

  • wthit56@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    18 days ago

    Don’t have the quotes, and it will retrieve a variable by the name perchanceListA. So then referencing x will reference whatever value perchanceListA had.

    Where are you putting the code let x...?

    • allo@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      17 days ago

      edit: oops. was cuz i had a wrong capitalization of a list lol. totally my fault and nothing to do with language syntax! :) thanks. very much works

      what i had typed about the specifics before solving

      you and vionet so smart but i think none of those work for this.

      i have my style buttons that i want to be like, for the Bright style for example: <button onclick="genimgs(this)">Bright</button> a little more complicated but basically a bunch of buttons exactly like this, but with different stylenames, all pointing to genimgs(button)

      genimgs(button) is then, in it’s simplified form, this: `

      function genimgs(buttonobject){

      let promptData = {
      
      prompt: prompt + " " + root[buttonobject.innerHTML],
      
      negativePrompt:"bad",
      
      resolution: 768x512,
      
      guidanceScale: 7,
      
      seed: 100,
      
      }
      
      document.getElementById("imgs").innerHTML = image(promptData).evaluateItem
      
      }
      

      `

      in genimgs, buttonobject.innerHTML does indeed equal “Bright”. So I want it to pull a line from the Perchance list called Bright, like the Anime button should go to this function, be translated in to the string Anime, and pull a line from the Perchance list Anime. But see how I can’t just type out the word Bright or Anime with no quotes like you and vioneT suggest. It is a string I am getting from a button. It could be tons of different strings. I then need to convert the string in to it’s relevant Perchance List. I believe, in normal JS, if root.Bright were my list, root[buttonobject.innerHTML] would retrieve it since in normal JS they are equivalent. But not here and nor do I know the Perchancian way to do it.

      • wthit56@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        17 days ago

        That should work just fine. But I think you need to use $root to access it. Because JS and everything all use with(root) { ... }. Which means if you use just root you’re actually accessing root.root–which I’m guessing doesn’t exist. And that’s why you’re not getting any value.

        But $root always goes back to the root of the perchance main list object. So that might work for you.

        If it still doesn’t, you can give us the link to the generator and we can look at the code for you and figure out a solution.

  • VioneT@lemmy.worldM
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    18 days ago

    It should retrieve the list directly with:

    // Perchance
    PerchanceListA
      a
      b
      c
    ---
    // HTML
    <script>
    let x = PerchanceListA
    // if you want a more 'understandable code'
    // let x = root.PerchanceListA // since all Perchance lists are under the 'root' variable.
    // also with this, you would overwrite the value of list 'x' if you have one.
    </script>
    [x]
    
    • allo@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      18 days ago

      ty tho maybe i missexplained.

      let xx = "Bright"; alert(root[xx])

      in normal javascript, this would access root.Bright. (interesting about ‘root’. didnt kno that)

      The above is what I’m trying to do. I have the word for the name of the list on a variable. Hao access list from variable?

      I have the variable xx storing the string “Bright”. Hao maek alert say a list item from the list named “Bright”?

      • VioneT@lemmy.worldM
        link
        fedilink
        English
        arrow-up
        2
        ·
        18 days ago

        For example on the /minimal generator we have the list:

        listnames
          animal
          adjective
          verb
          location
        

        then on the javascript:

        let x = listnames; // you can also use listnames.selectOne, if you only want it to have a single item and you have to reload the page to randomize it again.
        // This would get a 'random' value from the `listnames`.
        alert((y = x.selectOne) + ':' + root[y]);
        // would give a random item from any of the list 
        
        • allo@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          17 days ago

          Thank you! the root thing worked. turns out i had a capital letter where there shouldnt have been one and that’s why my list wasn’t being translated from the string correctly. silly and my fault and nothing about language. thanks for the help tho!