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 다 가 동작한후에 스크립트가 써질 테니까요
왠만하면 스크립트랑 분리하는게 좋아요 문제 생길수도있고 여러변수도 많구요
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>