2016-10-19 3 views
0

내 HTML 양식에는 jQuery를 통해 생성 된 반복 가능한 입력이 있습니다. 모든 정적 입력에 대해 PHP $ _sessions를 통해 사용자의 입력 값을 저장합니다. 이렇게하면 사용자가 제출 후 양식 페이지로 다시 이동하면 해당 값이 저장됩니다. 동적으로 생성 된 필드를 사용하여이를 달성하는 방법을 잘 모르겠습니다.동적으로 생성 된 양식 입력 + PHP 변수

여기 내 양식의 미리보기입니다 :

  1. 사용자 확인이 상자가
  2. 가 true의 경우, 두 개의 입력이 나타납니다 자녀가있는 경우 : 아동의 이름과 아동 DOB를.
  3. 사용자는 더하기 버튼을 클릭하여 어린이 당 추가 행을 추가 할 수 있습니다.

목표, value 속성에 저장된 동적으로 생성 된 입력란에 $ _Session이 있어야합니다. jQuery를위한

요점은 추가 행을 추가합니다 : https://gist.github.com/anonymous/3273a19ca2f6f75a16befeec5c87b718

<div class="child-wrap row"> 
    <div class="col s12"> 
     <span class="child-count">Child 1</span> 
    </div> 
    <div class="col s12 m5"> 
     <label for="child-name">Name</label> 
     <input name="child[0][name]" value="<?php echo $_SESSION['child_name'][0]; ?>" id="child-name" type="text"> 
    </div> 
    <div class="col s12 m5"> 
     <label for="child-dob">DOB</label> 
     <input name="child[0][dob]" value="<?php echo $_SESSION['child_dob'][0]; ?>" id="child-dob" type="date" class="datepicker"> 
    </div> 
    <!-- *************************** 
    * Dynamic rows are added here 
    **************************** --> 
    <div class="added-child-wrap"> 
     <div class="col s12"> 
      <div class="child-count"> 
       <span>Child 2</span> 
       <a href="#" class="remove_field hide-on-large-only"> 
        <i class="material-icons">remove_circle_outline</i> 
       </a> 
      </div> 
     </div> 
     <div class="col s12 m5"> 
      <label for="child-name1">Name</label> 
      <input name="child[1][name]" value="" id="child-name1" type="text"> 
     </div> 
     <div class="col s12 m5"> 
      <label for="child-dob1">DOB</label> 
      <input name="child[1][dob]" value="" id="child-dob1" type="date" class="datepicker"> 
     </div> 
     <div class="col s12 m2 hide-on-med-and-down"> 
      <a href="#" class="remove_field"> 
       <i class="material-icons">remove_circle_outline</i> 
      </a> 
     </div> 
    </div> 
    <!-- *************************** 
    * End ynamic rows 
    **************************** --> 
</div> 
<div class="row"> 
    <div class="col s12"> 
     <a href="#!" class="add_field_button"><i class="material-icons">add_circle_outline</i></a> 
    </div> 
</div> 
+0

'sessionStorage'를 사용하거나 javascript를 통해 새로운 요소를 생성하면 비동기 요청을 PHP 스크립트에 보내면 '$ _SESSION'에 새 필드가 추가됩니다. –

답변

0

당신은 아래에서 PHP 세션에서 정적 및 동적으로 생성 된 필드의 모든 입력 값을 저장할 수 있습니다.

foreach($_POST["child"] as $element => $child) { 
     $_SESSION["child_name"][$element] = $child["name"]; 
     $_SESSION["child_dob"][$element] = $child["dob"]; 
    } 

그런 다음 양식에서 모든 세션 값을 채우려면 다음 코드를 시도하십시오.

<?php 
     for($i=0;$i<count($_SESSION['child_name']);$i++) { 
     ?> 
      <div class="col s12"> 
       <span class="child-count">Child <?php echo $i+1; ?></span> 
      </div> 
      <div class="col s12 m5"> 
       <label for="child-name1">Name</label> 
       <input name="child[<?php echo $i; ?>][name]" value="<?php echo $_SESSION['child_name'][$i]; ?>" id="child-name<?php echo $i; ?>" type="text"> 
      </div> 
      <div class="col s12 m5"> 
       <label for="child-dob1">DOB</label> 
       <input name="child[<?php echo $i; ?>][dob]" value="<?php echo $_SESSION['child_dob'][$i]; ?>" id="child-dob<?php echo $i; ?>" type="date" class="datepicker"> 
      </div> 
      <div class="col s12"> 
       <div class="child-count"> 
        <span>Child <?php echo $i+1; ?></span> 
        <a href="#" class="remove_field hide-on-large-only"> 
         <i class="material-icons">remove_circle_outline</i> 
        </a> 
       </div> 
      </div> 
     <?php 
     } 
     ?> 
관련 문제