동적으로 입력필드 추가후 값 넘기기

버튼클릭하면 입력필드가 추가되고

추가된 입력필드의 value값도 +1씩 증가 시키고 싶습니다. 

일단 제이쿼리로 동적입력필드는 만들었는데 value값에 입력필드가 추가될때마다

value="<?php echo $content->option->sample1 ?>"

value="<?php echo $content->option->sample2 ?>"

value="<?php echo $content->option->sample3 ?>"

.

.

.

이런씩으로 값을 증가시키고 그 값을 document.php로 넘기고 싶습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • KBoard 질문이라기보단 자바스크립트(jQuery) 질문 같습니다^^

    새로운 필드를 추가하는 예제는 아래 링크를 확인해보시겠어요?

    http://zetawiki.com/wiki/JQuery_%ED%85%8C%EC%9D%B4%EB%B8%94_%ED%96%89_%EC%B6%94%EA%B0%80/%EC%82%AD%EC%A0%9C

    http://stove99.tistory.com/93

     

    간단한 예제도 작성해서 올려드립니다~^^

    아래 코드를 스킨의 적당한 위치에 추가해서 테스트 해보세요 ㅎㅎ

    (원래 코드까지 작성해서 답변을 드리지는 못합니다..)

     

    <!-- 필드를 추가할 영역 -->
    <div id="kboard-dynamic-field"></div>

    <!-- 게시글 정보에 인덱스 수를 저장해서 차후 다시 사용 -->
    <input type="hidden" name="kboard_option_dynamic_field_index" value="<?php echo intval($content->option->dynamic_field_index)?>">

    <!-- 추가 버튼 -->
    <button onclick="kboard_add_dynamic_field()">추가</button>

    <script>
    function kboard_add_dynamic_field(){
            
        // 인덱스 수 가져와서 1 증가
        var index = parseInt(jQuery('input[name=kboard_option_dynamic_field_index]').val()) + 1;
        
        // 증가된 인덱스 다시 저장
        jQuery('input[name=kboard_option_dynamic_field_index]').val(index);
        
        // 추가될 필드 이름
        var name = 'kboard_option_sample' + index;
        
        // 필드 추가
        jQuery('#kboard-dynamic-field').append(jQuery('<input type="text" name="'+name+' value="">'));
    }
    </script>

  • 친절한 답변 감사합니다.

    제가 질문드린것은 

    <input type="text" name="kboard_option_{옵션 카}" value="<?php echo $content->option->{옵션 키}?>">

    이런형태의 입력필드가 추가되어야하는데 value값에 php구문을 어떻게 추가해야되는지 알고싶습니다. 

    value값이 [ value="<?php echo $content->option->{옵션 키}?>" ]의 형태가 되어야 수정이 가능한것이 아닌지,

    그래야 document.php에 추가할수있고 내용이 출력되는것이 아닌지요?

  • 먼저 몇개의 필드가 등록됐는지 알아야 가능 할 듯합니다.

    그래서 예제에도 kboard_option_dynamic_field_index 필드가 있는것입니다.

     

    아래 코드처럼 예제에서 등록한 최대 필드의 개수(dynamic_field_index 값) 대로 출력을 해주시면 됩니다.

    for($index=1; $index<intval($content->option->dynamic_field_index); $index++){

         echo '<input name="kboard_option_sample' . $index . '" value="' . $content->option->{'sample'.$index} . '">';

    }

     

    아주 단순하게 코드를 표현하면 아래와 같습니다.

    for($index=1; $index<10; $index++){

         echo $content->option->{'sample'.$index};

    }

  • 감사합니다. 덕분에 잘해결되었습니다.^^

    혹시 for 대신 foreach로 하는이유가 따로 있나요?

    아무튼 고민하던 문제에 빠른답변해 주셔서 감사합니다.

  • for가 맞습니다^^

    급히 작성하느라 실수가 있었습니다 ㅎㅎ

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기