2014-03-29 7 views
1

나는 perl 댄서와 함께 템플릿 툴킷을 사용하고 있습니다. 양식이 있고이 양식에는 선택이 있습니다. 양식을 제출 한 후 페이지가 동일한 양식으로 돌아가고 선택 항목에서 선택된 이전 항목을 유지하려고 시도하고 있습니다. Ldap_List에는 10 개의 항목이 있습니다.댄서 및 템플릿 툴킷 : <select> 이전 선택

이 선택 코드 : I 시도

[% IF ldap_selected %] 
    [% ldap_selected %] 
[% END %] 

:

마지막으로 선택한 LDAP와 변수가 ldap_selected되고, 그 정의와 올바른 값이

<form class="well form-inline" method="post" action="[% request.uri_base %]/foo/ldap"> 
<fieldset> 
<legend>Select the LDAP:</legend> 
<select class="selectpicker" name="ldap_selected"> 
[% FOREACH ldap IN Ldap_List %] 
    <option value=[% ldap %]>[% ldap %]</option> 
[% END %] 
</select> 
<button type="submit" class="btn btn-primary">Go!</button> 
</fieldset> 
</form> 
, 메신저로 체크 이 작동하지만 작동하지 않습니다 :

<select class="selectpicker" name="ldap_selected"> 
    [% FOREACH ldap IN Ldap_List %] 
     [% IF ldap == ldap_selected %] 
      <option value=[% ldap %] selected>[% ldap %]</option> 
     [% ELSE %] 
      <option value=[% ldap %]>[% ldap %]</option> 
     [% END %] 
    [% END %] 
</select> 

그 이유는 선택에서 ldap_sele 하지만, 목록에있는 유일한 옵션.

어떻게하면됩니까?

답변

1

Select 태그 주위에 간단한 HTML Form 태그가 필요하고 params->{'ldap_selected'}과 같은 Perlscript 내의 Form 매개 변수를 읽으십시오. 나는 Dancer Documentation을 읽을 것을 제안 할 수 있습니다.

이 경우를 들어 당신은 모양을 here


편집을 시작할 수 있습니다 : 당신의 편집 후

, Template Toolkit 문제가 될 것으로 보인다. 당신은 ldap_selected의 가치를 가지고 있다고 말했고, 그것은 당신이 필요로하는 가치 인 것처럼 보입니다. [% IF ldap == ldap_selected %] 정확히 당신이해야 할 일입니다. 구문이 정확합니다.

  1. ldap_selected가 줄 바꿈 또는이 설정되어 있지가 포함

    내가 거기에 볼 수있는이 가능한 문제/솔루션이 있습니다.

  2. ldap에는 개행 문자가 포함되어 있습니다. Ctrl 키를+브라우저 내부의 U 각 변수의 출력

확인합니다. 어쩌면 개행을 볼 수 있습니다. IF ... 하드 ldap_selected ([% IF ldap_selected == 'foo' %])와 부와

[% FOREACH ldap IN [ 'foo', 'bar', 'baz' ] -%] 

ldap 파트와를 사용해보십시오. 당신은 어쩌면 내가 내 게시물을 편집 한 당신의 MyWeb-App/config.yml

+0

TT의 구성을 변경 한 경우

아무것도 작동하지

는 선택 폼 안에 확인합니다. 문제는 루프의 현재 요소가 ldap_selected와 동일한 값을 갖는지 foreach 내부를 검사하는 방법입니다. – user3452713

+0

내 편집을보세요. –

+0

감사합니다! 해결 된 :) 새 라인>. < – user3452713