[beepbeep] - работа с формами
От: DemAS http://demas.me
Дата: 21.08.09 12:00
Оценка:
Задача: на форме пользователь вводит значение, жмет клавишу, результат
сохраняется в базе данных.

Моя реализация:

/views/add_run.html:

[html]
{% extends "../base.html" %}
{% block content %}
Getting: {{ data }}
<form action="/home/run_create" method="post">
<input type="text" name="date" id="date"/>
<input type="text" name="time" id="time"/>
<input type="text" name="distance" id="distance"/>
<input type="submit" name="submit" value="Save"/>
</form>
{% endblock %}
[/html]

home_controller.erl:

handle_request("run_create", [])->
io:format("here~n"),
PostData = ewgi_api:remote_user_data(Env),
% Date = proplists:get_value("date", PostData),
io:format("~p~n", [PostData]),
{redirect, "/"};


Вывод на экран в момент нажатия клавиши Save:

=INFO REPORT==== 21-Aug-2009::15:45:43 ===
Trying file: /home/demas/study/erlang/sport/couch/views/home/add_run.html
here
undefined

=INFO REPORT==== 21-Aug-2009::15:45:46 ===
Trying file: /home/demas/study/erlang/sport/couch/views/home/index.html


То есть, уже PostData оказывается неопределенной. Собственно, как в
home_controller.erl мне добраться до значения, введенных в поля формы?
Posted via RSDN NNTP Server 2.1 beta
Re: [beepbeep] - работа с формами
От: Mamut Швеция http://dmitriid.com
Дата: 21.08.09 15:30
Оценка:
Hello, DemAS, you write:

DAS> Задача: на форме пользователь вводит значение, жмет клавишу, результат

DAS> сохраняется в базе данных.

DAS> Моя реализация:


DAS> /views/add_run.html:


DAS> [html]

DAS> {% extends "../base.html" %}
DAS> {% block content %}
DAS> Getting: {{ data }}
DAS> <form action="/home/run_create" method="post">
DAS> <input type="text" name="date" id="date"/>
DAS> <input type="text" name="time" id="time"/>
DAS> <input type="text" name="distance" id="distance"/>
DAS> <input type="submit" name="submit" value="Save"/>
DAS> </form>
DAS> {% endblock %}
DAS> [/html]

DAS> home_controller.erl:


DAS>

DAS> handle_request("run_create", [])->
DAS> io:format("here~n"),
DAS> PostData = ewgi_api:remote_user_data(Env),
DAS> % Date = proplists:get_value("date", PostData),
DAS> io:format("~p~n", [PostData]),
DAS> {redirect, "/"};


DAS> Вывод на экран в момент нажатия клавиши Save:


DAS>

DAS> =INFO REPORT==== 21-Aug-2009::15:45:43 ===
DAS> Trying file: /home/demas/study/erlang/sport/couch/views/home/add_run.html
DAS> here
DAS> undefined

DAS> =INFO REPORT==== 21-Aug-2009::15:45:46 ===
DAS> Trying file: /home/demas/study/erlang/sport/couch/views/home/index.html


DAS> То есть, уже PostData оказывается неопределенной. Собственно, как в

DAS> home_controller.erl мне добраться до значения, введенных в поля формы?


А никак Потому что POST-данные при редиректе сохранить невозможно в силу особенностей HTTP. Единственный способ — это перенести все POST-данные в GET-параметры типа

GetData = [Key ++ "=" ++ Value || {Key, Value} <- PostData],
GetDataString = string:join(GetData, "&"),
{redirect, "/?" ++ GetDataString}.
avalon 1.0rc2 rev 295, zlib 1.2.3 (01.08.2009 02:47:12 EEST :z)(Qt 4.5.1)


dmitriid.comGitHubLinkedIn
Re[2]: [beepbeep] - работа с формами
От: Курилка Россия http://kirya.narod.ru/
Дата: 21.08.09 16:37
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Hello, DemAS, you write:


DAS>> То есть, уже PostData оказывается неопределенной. Собственно, как в

DAS>> home_controller.erl мне добраться до значения, введенных в поля формы?


M>А никак Потому что POST-данные при редиректе сохранить невозможно в силу особенностей HTTP. Единственный способ — это перенести все POST-данные в GET-параметры типа

M>
[cut]
M>


Как вариант — запулить это в сессию, как с ними у бипбипа, кстати?
Re[2]: [beepbeep] - работа с формами
От: DemAS http://demas.me
Дата: 21.08.09 17:09
Оценка:
"Mamut" <9088@users.rsdn.ru> writes:

> А никак Потому что POST-данные при редиректе сохранить невозможно в

> силу особенностей HTTP.

Опа, как же так. Я вот смотрю
beepbeep/example/blog/scr/home_controller.erl:

     handle_request("create",[]) ->
    PostData = ewgi_api:remote_user_data(Env),
    Title = proplists:get_value("post_title",PostData),
    Body = proplists:get_value("post_body",PostData),


beepbeep/example/blog/views/home/new.html:

[html]
<form action="/home/create" method="post">Title:<br/>
<input type="text" name="post_title" value="" size="40"/>
<br/>
<textarea name="post_body" value="" rows="10" cols="40"></textarea>
<br/>
<input type="submit" name="submit" value="Save"/>&nbsp;|&nbsp;<a href="/">Cancel</a>
</form>
[/html]

Разве не тоже самое ?
Posted via RSDN NNTP Server 2.1 beta
Re[3]: [beepbeep] - работа с формами
От: Mamut Швеция http://dmitriid.com
Дата: 24.08.09 07:40
Оценка:
Hello, DemAS, you write:

DAS> "Mamut" <9088@users.rsdn.ru> writes:


DAS> > А никак Потому что POST-данные при редиректе сохранить невозможно в

DAS> > силу особенностей HTTP.

DAS> Опа, как же так. Я вот смотрю

DAS> beepbeep/example/blog/scr/home_controller.erl:

DAS>
DAS>      handle_request("create",[]) ->
DAS>     PostData = ewgi_api:remote_user_data(Env),
DAS>     Title = proplists:get_value("post_title",PostData),
DAS>     Body = proplists:get_value("post_body",PostData),
DAS>


DAS> beepbeep/example/blog/views/home/new.html:


DAS> [html]

DAS> <form action="/home/create" method="post">Title:<br/>
DAS> <input type="text" name="post_title" value="" size="40"/>
DAS> <br/>
DAS> <textarea name="post_body" value="" rows="10" cols="40"></textarea>
DAS> <br/>
DAS> <input type="submit" name="submit" value="Save"/>&nbsp;|&nbsp;<a href="/">Cancel</a>
DAS> </form>
DAS> [/html]

DAS> Разве не тоже самое ?



Правидьно, но там нет редиректов. Там прямо в home_controller'е в одном и том же методе происходит обработка
avalon 1.0rc2 rev 295, zlib 1.2.3 (01.08.2009 02:47:12 EEST :z)(Qt 4.5.1)


dmitriid.comGitHubLinkedIn
Re[3]: [beepbeep] - работа с формами
От: Mamut Швеция http://dmitriid.com
Дата: 24.08.09 07:40
Оценка:
Hello, Курилка, you write:

К> Здравствуйте, Mamut, Вы писали:


К> DAS>> То есть, уже PostData оказывается неопределенной. Собственно, как в

К> DAS>> home_controller.erl мне добраться до значения, введенных в поля формы?

К> M>А никак Потому что POST-данные при редиректе сохранить невозможно в силу особенностей HTTP. Единственный способ — это перенести все POST-данные в GET-параметры типа

К> M>

К> [cut]

К> M>


К> Как вариант — запулить это в сессию, как с ними у бипбипа, кстати?


Можнои в сессию. С сессиями порядок
avalon 1.0rc2 rev 295, zlib 1.2.3 (01.08.2009 02:47:12 EEST :z)(Qt 4.5.1)


dmitriid.comGitHubLinkedIn
Re[4]: [beepbeep] - работа с формами
От: DemAS http://demas.me
Дата: 24.08.09 17:38
Оценка:
"Mamut" <9088@users.rsdn.ru> writes:

> DAS>
> DAS>      handle_request("create",[]) ->
> DAS>     PostData = ewgi_api:remote_user_data(Env),
> DAS>     Title = proplists:get_value("post_title",PostData),
> DAS>     Body = proplists:get_value("post_body",PostData),
> DAS>


> Правидьно, но там нет редиректов. Там прямо в home_controller'е в одном и том же методе происходит обработка


Под редиректом ты имеешь в виду {redirect, "/"}; ?
Его можно убрать — суть от этого не меняется.

handle_request("run_create", [])->
io:format("here~n"),
PostData = ewgi_api:remote_user_data(Env),
io:format("~p~n", [PostData]);


PostData оказывается неинициализтрованным.

Или я чего-то не понимаю?
Posted via RSDN NNTP Server 2.1 beta
Re[5]: [beepbeep] - работа с формами
От: Mamut Швеция http://dmitriid.com
Дата: 25.08.09 06:57
Оценка:
Hello, DemAS, you write:

DAS> "Mamut" <9088@users.rsdn.ru> writes:


DAS> > DAS>
DAS> > DAS>      handle_request("create",[]) ->
DAS> > DAS>     PostData = ewgi_api:remote_user_data(Env),
DAS> > DAS>     Title = proplists:get_value("post_title",PostData),
DAS> > DAS>     Body = proplists:get_value("post_body",PostData),
DAS> > DAS>


DAS> > Правидьно, но там нет редиректов. Там прямо в home_controller'е в одном и том же методе происходит обработка


DAS> Под редиректом ты имеешь в виду {redirect, "/"}; ?

DAS> Его можно убрать — суть от этого не меняется.

DAS>
DAS> handle_request("run_create", [])->
DAS> io:format("here~n"),
DAS> PostData = ewgi_api:remote_user_data(Env),
DAS> io:format("~p~n", [PostData]);
DAS>


DAS> PostData оказывается неинициализтрованным.


DAS> Или я чего-то не понимаю?



А, теперь понял В примере блога парсингом POST'а занималась миддлварь blog_example_parse_post, которая запихивала все в remote_user_data. Буквально вчера я закоммитил добавления от некоего индуса, которые, по идее (не тестировал ) должны позволить добраться до данных через beepbeep_request:parse_post(Env)
avalon 1.0rc2 rev 295, zlib 1.2.3 (01.08.2009 02:47:12 EEST :z)(Qt 4.5.1)


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.