PHP파일에서 <script>문 안에 for문 문법의 적용은 불가한건가요 ?

PHP파일에서 <script>문 안에 for문 문법의 적용은 불가한건가요 ?

QA

PHP파일에서 <script>문 안에 for문 문법의 적용은 불가한건가요 ?

본문

늘 고생많으십니다 선배님들 !

다름이아니라 코딩을 하던 과정 막히는 부분이 있어 Q&A에 글을 남기게 되었습니다 !

 

 

우선 제가 구현하고자하는 코드는 아래와 같습니다 !

1. for문으로 DB에 저장된 내용들을 받아와서 DB에 저장된 갯수만큼 <div>를 생성하며

   id에 또한 숫자가 증가하게끔 하여 각 다른 아이디로 10개의 div를 만들며,

   DB에 저장된 정보(제목, 내용 등)까지 변수로 담습니다.

2. 총 생성된 10개의 <div>파일을 각각 클릭할때마다 각 <div>의 아이디를 가져와

   DB의 내용과 비교하여 일치하면 alert으로 정보가(DB에 저장된 제목, 내용 등)이 보이게끔 합니다.

   ex) 1번 div 클릭 시 alert로 (제목: XX / 내용:XX)이 구현.

 

많이 부족한 후배에게 한가지 조언이라도 주시면 진심으로 감사하겠습니다 !

 

이 질문에 댓글 쓰기 :

답변 3

적어 주신 내용만 보면 그렇게 어렵지 않게 구현이 가능 할것 같은데요 for 문이 안되진 않습니다

단지 php로 반복된 만큼 script 에 들어가겟죠

기본적으로 php 는 서버쪽 동작 입니다. php가 다 동작된후 html 이나 스크립트가 출력되겟죠 그래서

<script>

 for(var i = 0; i < <?php sizeof($db) ?>; i++){

   alter(<?php $db[i]?>);

}

</script>

이런식으로 짜면 안되겠죠 같이 동작 하는게 아니라  php 다 가 동작한후에 스크립트가 써질 테니까요

우선 답변 감사드립니다 !

답변해주신 내용 덕분에 전체적인 개념은 이해를 하였으나,
이게 이해한대로 적용을 하려고해도 전혀 갈피를 못잡겠네요 ㅜ ㅜ

아래의 스크립트의 내용으로 DB에서 가져온 정보를 마우스 클릭하면 ID를 가져오는 것까지는
구현이 되었으나,

-아래-
<script>
    $('#tab_all').click(function (e) {
        id = e.target.getAttribute('id');
        alert(id);
        $('#tab_one').text("$BK_PART");
    });
</script>


이게 <php? 안에 for문 밑에 script로 들어가니 alert 조차도 작동하질 않네요 ㅜ
말씀해주신 것처럼 php가 다 작동한 후 스크립트가 출력이 되는 개념으로
아예 밑으로 위치를 해도 작동을 하지 않아요 ㅜ ㅜ

도대체 무엇이 문제일까요 .. ㅜ

적어주신 내용은 php 와 관련이 없어보이는데요??
<script>
    $('#tab_all').click(function (e) {
        id = e.target.getAttribute('id');
        alert(id);
        $('#tab_one').text("$BK_PART");
    });
</script>
소스 자체에는 문제가 없어 보입니다 $BK_PART는 <?php echo $BK_PART ?> 가 되어야 겟죠

1. DB에 저장된 정보(제목, 내용 등)까지 변수로 담습니다.

2. 각 <div>의 아이디를 가져와

   DB의 내용과 비교하여 일치하면 alert으로 정보가(DB에 저장된 제목, 내용 등)이 보이게끔 합니다

 

1과 2가 이해가 안되네요

1에서 제목 내용을 디비에서 이미 가져왔는데  2에서 db내용과 비교해서 제목 내용을 alert로???

2에서 하려는 것이 1에서 변수로 담는다는 제목 내용 값이 아닌가요?

완전히 다른 것이라면 클릭시 ajax로 디비 내용을 가져와서 보여주어야겠죠

 

1에서 변수로 담을 것이 아니라 for문이 돌때 아래처럼 제목 내용을 보이지않게 해놓고

클릭시 이 내용을 읽어서 alert해주면 되겠습니다

아니면 div를 보이게 하거나 숨기게 해도 될테고....

<?

for($i=0; $i<10; $i++){?>

<div class='clickdiv'><?=($i+1)?>번 div</div>

<div style='display:none;' class='subj'>제목</div>

<div style='display:none;' class='cont'>내용</div>

}

?>

<script>
    $('.clickdiv').click(function() {
       idx= $('.clickdiv').index( $(this) );

       subject = $('.subj').eq(idx).html();

       content = $('.cont').eq(idx).html();
        alert(subject+'/'+content);
    });
</script>

답변을 작성하시기 전에 로그인 해주세요.
전체 1

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT