2014-10-29 1 views
3

동적으로 추가 된 행이있는 양식이 있습니다. 그것은 작동합니다. 양식 필드를 채우고 제출 버튼 "정확성 검사"를 클릭하면 유효성 검사가 수행됩니다. 데이터가 틀린 경우 올바른 것이 필요합니다. 데이터가 정확하다면 생성 된 PDF 파일에 대해 "submit pdf"라는 새로운 제출 버튼이 생깁니다. 데이터 검증 후 사용자가 입력하는 데이터는 계속 볼 수 있어야합니다. 내 양식에서도 작동합니다.PHP 및 JavaScript에서 동적으로 추가 된 행 저장

일부 행을 추가 할 때 문제가 발생합니다. 그것을 채우고 submit "check correctness"를 클릭하면 새로 추가 된 행이 데이터와 함께 사라집니다. 유효성을 확인한 후에이 행을 저장하는 방법을 알고있는 사람이 있습니까?

이 동적으로 추가 필드 내 HTML 코드입니다 :

$oForm->formHTML('<div class="add_btn_block" style="margin-left:200px;"><div class="row_add_btn add_row">title</div></div>'); 
     $oForm->formHTML(addRows2()); 

    function addRows(){ 
     $personsArray = $_POST['persons']; 
     $html = ' 
     <table id="template2" style="display:none; "> 
      <tr id="row_{0}"> 
       <td><input type="text" name="persons[]"></td> 
       <td><img src="/../_img/row_del.png" id="delete_{0}" alt="usun"></td> 
      </tr> 
     </table> 
     <table id="list2"> 
      <thead > 
       <tr> 
        <th></th> 
        <th></th> 
       </tr> 
      </thead> 

      <tbody> 
       <tr> 
        <td><input type="text" name="persons[]" value="'.$personsArray[1].'"></td> 
        <td></td> 
       </tr> 

       <tr> 
        <td colspan="2" id="app_here2"></td> 
       </tr> 
      </tbody> 
     </table>'; 
      return $html; 
    } 

그리고 이것은 그 자바 스크립트 코드입니다.

  1. 그것의 단일 행 : 1 enter image description here

2.It의 두 행을 추가 한 후

if($_POST["ACT"] == NULL){ 
    $oForm->formInput(array(
     'type'=>'hidden', 
     'name'=>'ACT', 
    )); 

    $oForm->formInput(array(
     'id' =>'counter', 
     'type'=>'hidden', 
     'name'=>'counter', 
     'value'=>0)); 

    $oForm->formSubmit(array(
     'name' => 'sprawdzPoprawnosc', 
     'value' => 'check correctness' 
    )); 
} 

가 일부 화면입니다 :

<script> 
     $(document).ready(function(){ 
      var i = 2; 
      var rowTemplate2 = jQuery.format($("#template2").html()); 

      function addRow(){ 
       var ii = i++; 
       $("#app_here2").append(rowTemplate2(ii)); 
       $("#delete_" + ii).click(function(){ 
        $("#row_" + ii).remove(); 
       }); 
      } 
      $(".add_row").click(addRow); 
     }); 
</script> 

는 일부 PHP입니다 . 페이지 새로 고침은 여전히 ​​(그것으로 3 행과 데이터)와 같은 형태를 한 후 내가 원하는 : enter image description here

3.It의이 상쾌 페이지 후, 지금처럼 보이게하는 방법 : enter image description here

당신이 날 도와 줄 수는?

+3

서버로의 본격적인 왕복 이동을 가정하고 양식으로 돌아 오는 것으로 가정합니다 (예 : 페이지를 완전히 다시 작성하면 페이지 재 작성시 그 당시에 추가 된 행을 포함해야합니다. 그렇지 않으면 당신은 당신이 시작한 곳으로 돌아갈 것입니다. –

+1

안녕하세요. 지역 사회는 "제목에 집에서 만든 태그 장치를 사용해야합니까?"라는 질문에 대해 논의했으며, 관심이 있다면 _Meta_에 있지 않아야한다고 결정했습니다. 제목을 그렇게 쓰지 않아도된다면 편집 작업을 줄이는 데 도움이됩니다. – halfer

+0

당신은 @ 마크 B가 맞습니다. 어떻게 할 수 있습니까? 양식에서 데이터를 저장하는 루프를 만들어야하지만 어떻게해야할지 잘 모르겠습니다. –

답변

0

마크 B에 동의합니다. 서버의 페이지로 돌아 오기 전에 양식에 변경 사항을 저장해야합니다. 한 가지 옵션은 임시 파일 또는 데이터베이스에 저장하는 것입니다. 나는 이것이 효과가있을 것이라고 생각하지만 과잉이라고 생각한다. $ _SESSION 변수에 저장하려고 시도합니다. 서버가 새 양식을 보내면 특정 $ _SESSION 변수가있는 경우이를 가져올 수 있습니다.