2017-02-20 2 views
0

병으로 설정된 작은 웹 앱이 있습니다. POST 양식에서 request.forms.get 인 일반 텍스트 상자를 읽을 수 있지만 드롭 다운 메뉴가있는 <select> 필드는 읽을 수 없습니다.병으로 양식의 메뉴 항목을 드롭 다운 할 수 없습니다.

HTML에는 문제가 없지만 필요에 따라 앱 코드와 함께 게시 할 수 있습니다.

편집 :

@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) 및 [How to ask] (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

나는 이것을 해냈다 고 생각한다. 문제를 코드로 업데이트했다. 그러나, 나는 당신이''example''보다는'request.forms.get'에서''select ''를 사용했음을 알았습니다 - 제가 이것을해야합니까? –

+0

감사합니다. 우리가 해결했다고 생각했습니다! –