2013-08-13 3 views
0

나는 diferente id로 끝나는 동일한 작업을 가진 여러 양식을 나타내는 foreach을가집니다. 하지만 <form> 태그는 첫 번째 양식에만 표시됩니다. 다른 모든 필드는 나타나지만 do not는 <form> 루프에 다른 형태로 id을 넣으려고했습니다. 그러나 작동하지 않습니다.foreach 내의 여러 양식

코드 :

<?php echo $this->Form->create(null, array(
       'url' => array('controller' => 'menus', 'action' => 'aprovar', $procuracao['Attorney']['id']), 'id' => $procuracao['Attorney']['id'] 
       )); ?> 
       <div class="control-group"> 
       <label class="control-label">Alçada:</label> 
       <div class="controls"> 
       <?php echo $this->Form->input ('alcada', array('type' => 'select', 'label' => FALSE, 'options' => array(
                       'Até 10.000' => 'Até 10.000', 
                       'Até 50.000' => 'Até 50.000', 
                       'Acima de 100.000' => 'Acima de 100.000', 
                       'Acima de 500.000' => 'Até 500.000',), 

                       'empty' => 'Selecione')); ?> 
       </div> 
       </div> 

       <div class="control-group"> 
       <label class="control-label">Validade:</label> 
       <div class="controls"> 
       <?php echo $this->Form->input('validade', array('label' => FALSE, 'type' => 'text')); ?> 
       </div> 
       </div> 
       <?php echo $this->Form->submit('Ok', array('class' =>'btn btn-success pull-left', 'div' => false)); ?> 
       </div> 

필드 "Alçada"와 "Validade는"제대로 나타납니다. 그러나 태그 <form>은 첫 번째 요소에만 나타납니다.

답변

0

양식을 끝내지 않을 것입니다.

echo $this->Form->create(null, array(
      'id' => 'your-form-'.$i, //that $i is the index of the foreach, for example 
      'url' => array('controller' => 'menus', 'action' => 'aprovar', $procuracao['Attorney']['id']), 'id' => $procuracao['Attorney']['id'] 
      )); 
//all inputs and other stuff 
echo $this->Form->end(array('label'=>'Ok', 'class' =>'btn btn-success pull-left', 'div' => false)); 

모든 내용은 foreach 안에 있습니다.

Here은 문서에서 해당 기능에 대한 참조입니다. 그러나 기본적으로는,이

는 HTML 양식을 닫습니다 않습니다 FormHelper 설정 값 : 생성()를 정리하고, 는

+0

안녕을 적절한 숨겨진 입력 필드를 쓴다! 작동하지 않습니다. 첫 번째 요소의 형식은 괜찮습니다! 그러나 나머지 부분에는 '

'이 나타나지 않습니다. –

+0

아마도 이름이나 ID의 충돌 일 것입니다. FormHelper는이 양식에 동일한 ID를 제공하므로 변수 id를 전달하는 것을 방지해야합니다. 나는 답을 업데이트 할 것이지만 이것을 염두에 두라. 만약 모두가 같은 모델을 가지고 있다면 어떤 양식이 제출되었는지 어떻게 알 수 있을까? 모든 양식 제출은 컨트롤러의'$ this-> request-> data [ 'Model']'에서 설정되므로 foreach는 쓸모가 없습니다. 또한 동일한보기의 양식은 [다중 양식 유효성 검사 문제 '로 연결됩니다 (http://stackoverflow.com/questions/16669857/multiple-form-with-same-model-name-on-single-page-cakephp/ 17495130 # 17495130) – Nunser

+0

나는 모든 양식의 ID와 이름을 변경하려고했으나 작동하지 않습니다. –