возвращается только первое слово из выбора переключателя - PullRequest
0 голосов
/ 05 февраля 2019

Чтобы получить выбранную опцию из формы переключателя, я смотрю на request.vars, чтобы получить значение.Ниже приведен код контроллера:

def get_results():

test = request.vars['QuestionOne']

for topic in session.selectedtopics:
    test = test + request.vars[topic]

return locals()

А теперь код для представления:

{{extend 'layout.html'}}

<P>Please select the options that most closely approximates the actual scenario.
<br>
<form action="{{=URL('get_results')}}" method="post">
    {{nameTopic =""}}
    {{session.selectedtopics = list()}}
    {{for topic in topics:}}
        {{if nameTopic <> topic.topic.replace(" ", "_"):}}
            <br><h2>{{=topic.topic}}</h2>
        {{nameTopic = topic.topic.replace(" ", "_")}}
        {{session.selectedtopics.append(nameTopic)}}
        {{pass}}
        <p><input type="radio" name={{=nameTopic}} value={{=topic.param}}>{{=topic.param}}</p>
    {{pass}}
    <br>
    <input type="submit">
</form>

Вот проблема: я не знаю причину, но она получает толькопервое слово выбранной опции в форме радио.Например, выбрана опция «Это нормально», но переменная возвращает только «Это».Есть идеи, почему это происходит?

Спасибо заранее.

1 Ответ

0 голосов
/ 05 февраля 2019

Вам нужно заключить в кавычки значения атрибута HTML:

<input type="radio" name="{{=nameTopic}}" value="{{=topic.param}}">

Без кавычек вы получите конечный HTML, например:

<input type="radio" name=some_topic value=It is normal>

Браузер интерпретирует значениебыть "It", где "is" и "normal" являются недопустимыми атрибутами HTML.

...