채택완료

php form안에 input 자동 생성 구현방법 질문 드립니다.

2020-11-14 (토) 18:48:26 1,991
Copy
<script>
$(function(){

$(".spcode").each(function(){
            var code = [];
            $(this).find("input[name='spCode[]']:checked").each(function(){
                code.push($(this).val());
            });

            if (code.length > 0){
                var $input = $("<input>");
                $input.attr("type","hidden");
                $input.attr("name","spCode[]");
                $input.attr("value",code);
                $("form[name='spFrm']").append($input);
            }
        });

</script>
 

     <form  name="spFrm">

( * 하단 부분을 위 스크립트에서 전달받아 form 안에 자동생성 해주려고 합니다.

spCode가 다르면 새로운 input 생성 spCode가 같은면 value 값을 쉽표로 분류 111,222,333...... 

이부분을 php로 어떻게 구현해야 하나요? )

    1.          <input type="hidden" name="spCode[]" value="1111,2222,3333">
    2.          <input type="hidden" name="spCode[]" value="1234,2345,3456">

      </form>
|

답변 1개 / 댓글 2개

채택된 답변
+20 포인트

질문 참 어렵습니다

input name='spCode[]' <--이게 어떤 모양으로 생겼는지 html태그를 보여주어야 질문을 보고 답을 알면 답변을 해줄텐데 소스를 해석해서 추측한 다음 답변 해달라고 하는 질문이니 쉽게 답변 받기 어렵겟습니다

답변에 대한 댓글 2개

죄송합니다.
<input type="checkbox" name="spCode[]" value="111">
<input type="checkbox" name="spCode[]" value="222">
<input type="checkbox" name="spCode[]" value="333">
<input type="checkbox" name="spCode[]" value="123">
<input type="checkbox" name="spCode[]" value="234">
<input type="checkbox" name="spCode[]" value="345">
이런식으로 checkbox로 체크시 1, 2,와 같이 생성하려고 합니다.
아직도 질문을 보고 파악하기 어렵습니다

$(".spcode").each(function(){ <---이건 뭐하는 코드인가요?
이 부분에 체크박스를 클릭하면 이렇게 한다는 코드가 들어가야 하는 것 아닌가요?
.spcode <-- 이것은 어디에서 나온 class인가요?

spCode가 다르면 새로운 input 생성 spCode가 같은면 value 값을 쉽표로 분류 <-- 같다/ 다르다를 무엇으로 구분한다는 것인가요?

이부분을 php로 어떻게 구현해야 하나요? <--php로 구현 하다니요?
자바스크립트로 폼에 input 태그를 만들어 넣는 것 아닌가요?

하여튼 만드는 방법은 아래와 같습니다

var code = [];
var code2 = [];

$(this).find("input[name='spCode[]']:checked").each(function(){
if( $(this).val() 가 이러하면 ) code.push($(this).val());
else if( $(this).val() 가 저러하면 ) code2.push($(this).val());
});

if (code.length > 0){
code.join(',');
var $input = "<input type='hidden' name='spCodekkk[]' value='"+code+'">"; //spCodekkk[]<---체크박스에 같은 이름이 있으니 다른 이름으로 해야겠죠
$("form[name='spFrm']").append($input);
}
if (code2.length > 0){
code2.join(',');
var $input = "<input type='hidden' name='spCodekkk[]' value='"+code2+'">";
$("form[name='spFrm']").append($input);
}

답변을 작성하려면 로그인이 필요합니다.