beginnerrr
2019-10-17 20:50:38 작성 2019-10-17 21:18:51 수정됨
4
225

신입 개발자 foreach 도움 부탁드립니다


현재 ajax로 리스트 폼을 불러오는 구문입니다

제이쿼리는 이런식으로 되어있고

function modal(url) {

$(''#mClass").show();

}


본문에는

<c:foreach var="list" item="${clist}" varStatus="status">

 <a href="#none" name="${list.imgPath}"  onClick="modal(this.name);">

</c:foreach>

이런식으로 짜여진 부분이 다른 jsp에서 ajax로 뿌려지는데

리스트의 컬럼중 하나인 저 a태그를 누르면 모달창을 띄우는 것 까지는 했지만

모달안에 각각 누르는 컬럼의 값마다 다른 이미지를 띄워줘야하는데 

폼이 한 JSP에 있어서 foreach를 body 맨위부터 아래까지이 한 JSP에 있어서

foreach를 body 맨위부터 아래까지 다 씌우면 모달폼까지 같이 돌아서

리스트에 modal 코드까지 같이 찍혀버리고 foreach를 따로 돌리면

리스트는 정상출력 되지만 모달에는 status 주면 길이만큼 다 돌아버리거나

begin end 0으로 주면 첫번째 값만 나오는데

위의 name에서 뽑아낸 imgPath를 담고 있는 url을 어떻게 가공해서 modal에 넣어야 할지

아니면 foreach를 잘 활용할 방법이 있는지 도움을 얻고자 합니다...

뭔가 생각은 많이 들고 시도해보는데 잘 되지 않네요

jsp 구조는 

<body>

function~~

list 폼

modal 폼 

</body>

이런식으로 한 페이지에 다 있습니다 

제가 생각나는대로 코드를 적은 것이라 문법이 정확하지 않을 수도 있습니다..


0
0
  • 답변 4

  • Frudy
    3k
    2019-10-17 22:34:24 작성 2019-10-17 22:34:48 수정됨

    일단 본문이 어떤내용인지 잘 이해가 안됩니다.

    그래서 저도 궁금해서 와드는 남깁니다만,


    javascript와 ajax가 있는데 JSTL EL을 쓰는 구조가

    어떠한 장점이 있는지도 궁금하네요~ 저도 아직 초보라서...


    저라면 JSTL EL안쓸거같아요.

    0
  • beginnerrr
    2019-10-18 00:49:06 작성 2019-10-18 00:52:35 수정됨

    아아 글이 좀 난잡하기는 합니다ㅠㅠ 

    Example.jsp

    Example_Ajax.jsp 이렇게 두개의 JSP가 있으면 Example.jsp의 펑션에서 ajax로 

    Example_Ajax.jsp의 본문에 있는 list 폼을 호출해서 Example.jsp의 상단에 출력하는 방식입니다.


    이때 list 출력할때 데이터를 매핑과 권한처리를 위해 JSTL을 사용한 것입니다.


    ajax로 불러온 폼안에 foreach로 불러온 값중의 하나인 imagePath가 있는데

    리스트에 그대로 출력할거면 img 태그 쓰고 src 속성에 ${list.imagePath}이런식으로 쓰면

    이미지가 순차적으로 나오겠지만

    리스트에 어떤 a태그를 눌렀을때

    모달로 만들어서 출력을 해야하는데 모달 폼이 Example_ajax 하단에 있습니다. 

    foreach를 전체Body 맨위부터 아래까지 다 돌리면  당연히 모달폼이 리스트로 낑겨들어가면서

    HTML이 다 꺠져서 나올 것이고 리스트에만 foreach를 쓰면 모달에는 매핑값이 없습니다.

    따로 foreach를 한번 더 써준다고 해도 리스트안에서 모달을 호출하는 것이니

    for문 안에 for문이 되는 것이고 모달 띄우면 사진이 전부 다 한 모달에 출력되는 것입니다

    1번 모달에 1번,2번,3번 사진 다 출력되는 것입니다.

    필요한건 1번 모달에 1번사진 2번 모달에 2번사진 

    for문 for문 같이 숫자가 올라가는 것이 필요한 것입니다.

    window.open 쓰고 팝업 띄워서 ajax나 write로 쏴줘도 되지만

    웹과 모바일, 앱도 다 똑같이 나오게 해야하는데

    앱에서는 open이 먹히지가 않네요 


    저도 이제 막 개발 시작한지 한달됐습니다ㅠㅠ



    0
  • n016omega
    564
    2019-10-18 10:03:01

    <c:foreach var="list" item="${clist}" varStatus="status">

     <a href="#none" onClick="modal('${list.imgPath}');">

    </c:foreach>


    function modal(url) {

        // 이미지 태그에 url 넣는 스크립트 작성

        $(''#mClass").show();

    }

    이렇게 하면 되는거아닌가요?

    0
  • beginnerrr
    2019-10-18 13:59:05

    어제 계속 생각한 것 다 적어놓고 오전에 적용해보다가 제이쿼리로 간단하게 해결했습니다.

    $("#image").attr("src", url);

    $('#downPath').prop('href', url)

    문제점은 foreach안에서 특정 값으로 호출되지만 foreach 범위안에는 들어가지 않는 곳에

    어떻게 값 전달을 할 것이냐인데

    아는 것인데도 foreach에 꽂혀서 시간을 많이 소비했네요

    n016omega  님 말도 맞습니다 답변 감사합니다.


    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.