fabcm1

fabcm1

Hi,

I am trying to use the components module that is being developed in Phoenix 1.7 in order to try the new resources from Liveview 0.18 with tailwind.

I can’t figure out what is the syntax of input/1 with type: “select” in the :option slot. It seems very different from the select/4 of Phoenix.HTML.Form. Here is an example that I am trying to make work:

In the heex, inside form, the following renders a select menu:

<%= select(f, :city_id, Enum.map(@cities, fn city -> {city.name, city.id} end)) %> 

Now, I try

<.input field={{f, :city_id}} type="select" option={Enum.map(@cities, fn city -> {city.name, city.id} end)} label="choose your city" />

and it fails with

** (Protocol.UndefinedError) protocol Enumerable not implemented for {"CITY NAME", 1} of type Tuple
        (elixir 1.14.0) lib/enum.ex:1: Enumerable.impl_for!/1
        (elixir 1.14.0) lib/enum.ex:166: Enumerable.reduce/3
        (elixir 1.14.0) lib/enum.ex:4307: Enum.reduce/3
        (phoenix_live_view 0.18.2) lib/phoenix_component.ex:762: Phoenix.Component.assigns_to_attributes/2
        ...

thanks in advance,

Showing Posts 1 to 5

DecoyLexi

DecoyLexi

You can use the slot syntax for select inputs:

<.input field={{f, :city_id}} type="select" label="Choose your city">
  <:option :for={city <- @cities} value={city.id}><%= city.name %></:option>
</.input>
DecoyLexi

DecoyLexi

Update: this syntax is no longer correct. For new projects generated with Phoenix 1.7.0-rc.0, the <.input type="select"/> component uses Phoenix.HTML.Form.options_for_select under the hood. Since commit 2fdb410, you’d use your original snippet with option changed to options:

<.input 
  field={{f, :city_id}}
  type="select" 
  label="Choose your city" 
  options={Enum.map(@cities, fn city -> {city.name, city.id} end)} 
/>
bdarla

bdarla

Is there any way to pass styling, e.g. different background colour for each option which shall be maintained in the selected option (dropdown functionality)?
I could find how this is possible via Phoenix.HTML.Form.options_for_select .

lc0815

lc0815

I am looking for the same answer.
I can find VERY LITTLE in the form of applying ANY STYLING to phoenix1.7 html and MUCH LESS for FORMS

GOOGgeling is not our friend in this case… and I asked this question just today on my topic: forms Development

bdarla

bdarla

I am not sure that we had the same problem to solve. I only needed a multicolour dropdown element.
Unfortunately, I could not solve it with pure Liveview components. Hence, I opted for javascript based solution via a hook.

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
mnkhod
So i have been using ash framework for a while and i love it. However currently the issue im having with ash framework is the error handl...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews