2012-09-27 3 views
1

이것은 입력 텍스트 필드를 동적으로 추가/제거하는 데 사용하는 스크립트입니다. 이 입력 필드에 대해 여러 개별 블록을 만들 수 있도록 컨테이너 속성을 사용하고 있습니다. 내가 출력 입력 필드에서 모든 필드를하는 PHP 코드가 필요FOREACH 명령을 사용하여 PHP에 추가 된 텍스트 필드를 출력하는 방법

<div class="container"> 
<a href="#" class="add">Add</a> | <a href="#" class="remove">Remove</a> | <a href="#" class="reset">reset</a> 
    <div class="inputs"> 
     <input type="text" name="dynamic1" class="field"/> 
    </div> 
</div> 

:

$(function(){ 
    $('.container > a').click(function(e){ 
     e.preventDefault(); 
     var $this= $(this), 
      prnt = $this.parent(), 
      i = prnt.find('input').length; 
     if($this.hasClass('add')){ 
      $('<div><input type="text" class="field" name="dynamic[]" value="' + i + '" /></div>').hide().fadeIn('slow').appendTo($('.inputs',prnt)); 
     }else if($this.hasClass('remove') && i > 1){ 
      prnt.find('input.field:last').remove(); 
     }else if($this.hasClass('reset') && i > 1){ 
      prnt.find('input.field:gt(0)').remove(); 
     } 
    }); 
}) 

내가 입력 필드를 구축하기 위해 사용하고있는 HTML 코드입니다. 3 개의 입력 필드를 추가하면 PHP 코드가 차례로 모든 입력 필드를 출력하도록합니다.

은 내가 foreach는 코드를 사용하여 시도 :

<?php 
foreach($_POST['dynamic[]'] as $value) { 
echo "$value <br />"; // change this to what you want to do with the data 
} 
?> 

하지만 (foreach는 라인) 나는이 작업을 수행하려면 어떻게

번째 줄에 오류가 계속? 도와주세요! 당신은 당신이 $_POST['dynamic']이 아닌 것을 알 수 있습니다이

<input type="text" name="dynamic[]" class="field"/> 
<input type="text" name="dynamic[]" class="field"/> 

좋아하지만 현재 HTML <input type="text" name="dynamic1" class="field"/>와 HTML이 있으면 그게 전부가

foreach($_POST['dynamic[]'] as $value) { 

foreach($_POST['dynamic'] as $value) { 

로 변경해야

답변

2

당신은 그냥

처럼 그것을 에코해야합니다 배열 대신 $_POST['dynamic[]'
echo $_POST['dynamic1'] ; 
+0

감사합니다! 그게 완벽하게 ~! –

+0

이것은 두 번째 필드에서 작동하지만 처음 (초기) 필드의 데이터를 잡을 수 없습니다! 첫 번째 필드의 데이터도 표시하려면 어떻게합니까? 도와주세요! –

1

시도 $_POST['dynamic']

<?php 
foreach($_POST['dynamic'] as $value) { 
echo "$value <br />"; // change this to what you want to do with the data 
} 
?> 
관련 문제