[FLOW3-general] need help with f:form.select
Wasko Jugovic
mailtestler at web.de
Thu May 3 15:22:11 CEST 2012
Thanks for your help. It worked!
By the way: f:form:select supports the onclick event. What about onchange?
I want to show a book's details without pressing the submit button
""Christian Müller (FLOW3 Team)"" <christian.mueller at typo3.org> schrieb im
Newsbeitrag news:mailman.1.1336033369.4178.flow3-general at lists.typo3.org...
> Hi Wasko,
>
> I think you have a minor misconception in your approach. Either you
> directly accept the book in your listAction as it is now (and is the
> recommended way) or you accept the idnr, which is I guess a string or
> integer. I would go for accepting the book as your listAction already
> shows. What I don't see are the proper annotations for your action, those
> are needed. If you have them, your form should work this way:
>
> <f:if condition="{books}">
> <f:form action="detail">
> <label for="book">Book</label><br />
> <f:form.select name="book" options="{books}"
> optionLabelField="name" id="book" sortByOptionLabel="true" /><br />
> <f:form.submit value="Show" />
> </f:form>
> </f:if>
>
> Because you actually just want to select one of your books and don't edit
> any book you can directly use the name argument of the select viewhelper,
> because your form doesn't deal with editing an object. This way the
> selected book (UUID) will be given to the detailAction.
>
> Cheers,
> Christian
>
> On 02/05/12 16:29, Wasko Jugovic wrote:
>> Hi,
>>
>> As FLOW3 newbie I fail at this exercise:
>> Index.html shows a form containing a drop-down list to select a book.
>> That
>> works for me. After form submission List.html should show a book's
>> details
>> (author, year....)
>> What's the right syntax in "arguments" for passing the selected item's
>> identifier from f:form:select to the listAction?
>>
>> My attempts end up with:
>> "The requested URL's length exceeds the capacity limit for this server" ,
>> when using {books: books}, because all identifiers and not only the
>> selected
>> one is passed ,
>> "Required argument 'book' is not set" by using {books: books.idnr}
>>
>> My indexAction
>>
>> public function indexAction() {
>> $this->view->assign('books', $this->bookRepository->findAll());
>> ....
>> ------------------
>>
>> My Index.html
>>
>> <f:if condition="{books}">
>> <f:form action="detail" arguments="{????}" name="books">
>> <label for="idnr">Book</label><br />
>> <f:form.select property="idnr" options="{books}"
>> optionLabelField="name" id="idnr" sortByOptionLabel="true" /><br />
>> <f:form.submit value="Show" />
>> </f:form>
>> </f:if>
>>
>> --------------
>>
>> My listAction
>>
>> public function listAction(Book $book) {
>> $this->view->assign('bookdetail',
>> $this->bookRepository->findByIdentifyer($book));
>> }
>>
>> Thanks!
>>
>>
>
>
> --
> Christian Mueller
> TYPO3 Core Team
>
> TYPO3 .... inspiring people to share!
> Get involved: typo3.org
More information about the FLOW3-general
mailing list