2016-07-20 3 views
0

현재 대시 보드 도구로 작업 중입니다. 여기서는 파이썬을 사용하여 데이터 프레임을 살펴본 다음 데이터를 기반으로 필터를 만듭니다. 나는 예를 들어 출력으로 다음과 같은 코드를 가지고 :라디오/체크 박스 작업 (파이썬 플라스크)에서 양식 자동 제출

<form name="FormYear" method="post"> 
    <div class="panel"> 
    <div id="checkboxes"> 
     <div class="filterdiv"> 
     Forecast Year 
     <button class="filterButton clearfilter" type="submit" name="submit" value="clearFilterYear"> 
      <i class="glyphicon glyphicon-remove"></i> 
     </button> 
     <button class="filterButton filter" type="submit" name="submit" value="filter"> 
      <i class="glyphicon glyphicon-filter"></i> 
     </button> 
     </div> 
     <input value = "1" type="hidden" name="FormYear"> 
     <input type="radio" name="Year" id="Year2016" value="2016" checked class="checkbox" > 
     <label class="checkboxLabel" for="Year2016">2016</label> 
     <input type="radio" name="Year" id="Year2017" value="2017" class="checkbox" > 
     <label class="checkboxLabel" for="Year2017">2017</label> 
     <input type="radio" name="Year" id="Year2018" value="2018" class="checkbox" > 
     <label class="checkboxLabel" for="Year2018">2018</label> 
    </div> 
    </div> 
</form> 

위의 코드는 2와 3 라디오 버튼 (모든 선택을 취소 한 선택을 제출 한 등) 전송 버튼이 포함되어 있습니다. 라디오 버튼을 스타일링하기 위해서 나는 Label과 css를 사용하고있다.

대시 보드에는 이러한 양식이 많이 포함되어 있으며 사용자가 확인란이나 라디오 버튼을 선택할 때마다 양식을 제출할 수 있기를 바랍니다.

기본적으로 사용자가 필터를 변경할 때마다 두 번째 버튼이 사이트에 있어야합니다.

이 작업을 수행 할 수 있습니까?

+1

JQuery를 약간만 사용하면 라디오 버튼에서 'change'이벤트를 처리하고 Javascript를 통해 양식을 제출할 수 있습니다. – donners45

+0

http://stackoverflow.com/questions/13126501/submit-form-on-radio-button-click-submit-form-and-perform-other-actions-on-rad – davidism

+0

안녕하세요, 데이비드, 전에이 질문을 보았습니다. 내 자신을 게시하지만, 그것을 작동시키지 못했습니다. 몇 가지 리스너를 사용하여이 문제를 해결했으며 폼의 각 컨트롤에 대해 고유 한 ID를 생성하는 것을 기억했습니다. –

답변

0

Flask-Sijax을 사용하면 Flask 응용 프로그램에 Sijax 지원을 추가 할 수 있습니다. Sijax는 AJAX 라이브러리를 사용하기 쉽습니다.

@flask_sijax.route(app, '/hello') 
def hello(): 
    def say_hi(obj_response): 
     obj_response.alert('Hi there!') 
    if g.sijax.is_sijax_request: 
     # Sijax request detected - let Sijax handle it 
     g.sijax.register_callback('say_hi', say_hi) 
     return g.sijax.process_request() 
     return _render_template('sijaxexample.html')