2017-02-20 39 views
0

У меня есть небольшое веб-приложение, настроенное с помощью Бутылки. Он может читать нормальное текстовое поле с request.forms.get из формы POST, но не поле <select> с выпадающим меню.Бутылка не позволит мне получить доступ к выпадающим пунктам меню в формах

HTML выглядит хорошо, его здесь нет, но при необходимости можно опубликовать код приложения.

EDIT:

@bottle.post('/combat') 
def combat(): 
    thing = bottle.request.forms.get('name') 
    print(bottle.request.forms.get('river')) 

    print(type(thing),dir(thing),thing) 
    return("THANKS FOR FIGHTING") 

#print("starting server") 
bottle.run(host='localhost',port=8080) 

И шаблон:

<html> 
<body> 

<form action="/combat" method="post"> 

Choose your attacker: 

<select name="attacker"> 
    % for unit in unitlist: 
     <option value="{{unit}}">{{unit}}</option> 
    % end  
</select> 
<p> 

Choose your defender: 

<select name="defender"> 
    % for unit in unitlist: 
     <option value="{{unit}}">{{unit}}</option> 
    % end  
</select> 
<p> 

Location: 
<select name="location"> 
    <option value="open">Out in the Open</option><br> 
    <option value="city">In a City</option><br> 
    <option value="fort">In a Fort</option> 
</select> 
    <p> 

<input type="checkbox" name="river" value="True">On a river<br> 
<input type="checkbox" name="fortified" value="True">Fortified<br> 
<p> 


<input name="name" type="text" /> 

<input type="submit" value="Submit"> 


</form> 
</body> 
</html> 

Я после того, что он оказывает, если это помогает?

+0

Пожалуйста, введите код, который вы написали. Чем больше информации вы предоставите, тем больше ответов вы получите. Проверьте [FAQ] (http://stackoverflow.com/tour) и [Как спросить] (http://stackoverflow.com/help/how-to-ask). –

+0

Сделали - спасибо за помощь в форматировании! –

ответ

0

Так что, кажется, это была ложная тревога - теперь он работает, и Я не сильно изменился! Не уверен, в чем проблема, кроме того, что теперь включен режим отладки и запутан с кодом, который отображал bottle.forms.get!

Надеюсь, что я не потратил впустую людей ...

0

Убедитесь, что мнение о том, обрабатывает переданные данные принимает запрос POST и выберите поле должно содержать правильное имя:

from bottle import get, post, request # or route 

@get('/form') # or @route('/form') 
def form(): 
    return ''' 
     <form action="/example" method="post"> 
      Select: <select name="example"> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
       <option value="5">5</option> 
      </select> 
      <input value="Submit" type="submit" /> 
     </form> 
    ''' 

@post('/example') # or @route('/example', method='POST') 
def example(): 
    select_field_data = request.forms.get('example') 
    ... 
+0

Я думаю, что я сделал это - обновил вопрос с помощью кода. Однако я заметил, что вы использовали '' select'' в 'request.forms.get', а не' 'example'' - должен ли я это делать? –

+0

Спасибо, подумал, что мы решили это! –

Смежные вопросы