for문 같지만, for문 아닌 경우 질문입니다. 정보
for문 같지만, for문 아닌 경우 질문입니다.
본문
게시판 리스트를 불러올 때, 보통 for문을 사용하는데요.
(표현이 정확한지 모르겠지만) 제가 구현하려는 것은, for문이 아닙니다.
넘버는 지속증가해야 하는데,
넘버에 매치되는 리스트 내용은 직접 수작업으로 만들어 나가는 구문입니다.
1. 안녕하세요.
2. 저녁입니다.
3. 식사하세요.
와 같이 넘버는 증가하지만,
리스트 내용은 게시판에서 불러오는 것이 아니라, 직접 써넣는 수작업으로 만들어 나가려고 합니다.
(용도는 게시판과는 다른 별도의 안내문 스킨을 만들려는 것입니다.)
넘버링을 해야 하는 이유는, 아래 소스의 스크립트 때문인데요.
스크립트를 통해서 펼치기 접기를 하려고 합니다.
1. 안녕하세요. [펼치면]
여기는 파리입니다. 날씨가 좋아요.
2. 저녁입니다. [펼치면]
여기는 북경입니다. 날씨가 흐려요.
3. 식사하세요. [펼치면]
여기는 런던입니다. 비가 와요.ㅠㅠ
펼치기 스크립트가 $i 값을 받아서,
전에 펼친 것은 접고 새것을 펼치기 때문에 $i 값은 자동으로 증가될 필요가 있습니다.
일단 for문으로 적용하면 안될 것 같아서 아래와 같이 임시방편으로 만들었습니다.
<div><a onclick=view(<?=$i?>)>안녕하세요</a></div>
<div id="view_<?=$i?>" style="display:none">여기는 파리입니다. 날씨가 좋아요.</div>
<div><a onclick=view(<?=$i+1?>)>저녁입니다.</a></div>
<div id="view_<?=$i+1?>" style="display:none">여기는 북경입니다. 날씨가 흐려요.</div>
<div><a onclick=view(<?=$i+2?>)>식사하세요</a></div>
<div id="view_<?=$i+2?>" style="display:none">여기는 런던입니다. 비가 와요.ㅠㅠ</div>
<!-- 펼치기 스크립트-->
<script type='text/javascript'>
var old_i; // 전에 클릭했던 글의 번호값 저장
function view(i) {
if (old_i==i) {
var mode=document.getElementById('view_'+i).style.display;
if (mode=='inline') document.getElementById('view_'+i).style.display='none';
else document.getElementById('view_'+i).style.display='inline';
}
else {
if (old_i) document.getElementById('view_'+old_i).style.display='none';
document.getElementById('view_'+i).style.display='inline';
}
old_i=i;
}
</script>
위와 같이 $i 뒤에 직접 일일이 '+넘버링'을 하고 있는데, 이건 아닌데.... 싶습니다.
$i 값이 자동으로 증가하게 하는 방법을 알고 싶습니다.
for문을 써야 하는지, 쓴다면 어떻게 해 줘야 하는지,
아니면 전혀 새로운 다른 방법이 있는지 고수님들께 여쭈어 봅니다.
부탁드립니다. (__)
댓글 전체
<!-- 펼쳐지는 스크립트-->
<script>
var old_i; // 전에 클릭했던 글의 번호값 저장
function view(i) { // 답변 표시여부 조정하는 js함수
if (old_i==i) {
var mode=document.getElementById('view_'+i).style.display;
if (mode=='inline') document.getElementById('view_'+i).style.display='none';
else document.getElementById('view_'+i).style.display='inline';
}
else {
if (old_i) document.getElementById('view_'+old_i).style.display='none';
document.getElementById('view_'+i).style.display='inline';
}
old_i=i;
}
</script>
//일반 게시판 <? for ($i=0; $i<count($list); $i++) { ?> 안에서 적용시킬시
//subject 부분은 이렇게
<a onclick=view(<?=$list[$i][num]?>) style='cursor:hand' class=faq_subject><?=$list[$i][subject]?></a>
//접었다 펼칠 부분은 이렇게
<div id="view_<?=$list[$i][num]?>" style="display:none">
<?=nl2br($list[$i][wr_content]
</div>
<script>
var old_i; // 전에 클릭했던 글의 번호값 저장
function view(i) { // 답변 표시여부 조정하는 js함수
if (old_i==i) {
var mode=document.getElementById('view_'+i).style.display;
if (mode=='inline') document.getElementById('view_'+i).style.display='none';
else document.getElementById('view_'+i).style.display='inline';
}
else {
if (old_i) document.getElementById('view_'+old_i).style.display='none';
document.getElementById('view_'+i).style.display='inline';
}
old_i=i;
}
</script>
//일반 게시판 <? for ($i=0; $i<count($list); $i++) { ?> 안에서 적용시킬시
//subject 부분은 이렇게
<a onclick=view(<?=$list[$i][num]?>) style='cursor:hand' class=faq_subject><?=$list[$i][subject]?></a>
//접었다 펼칠 부분은 이렇게
<div id="view_<?=$list[$i][num]?>" style="display:none">
<?=nl2br($list[$i][wr_content]
</div>

공수래공수거님 답변 감사합니다.
그런데, 게시판에서 불러오는 것이 아니고 직접 수작업으로 나열해 나가는 것인데, $list를 사용해도 될까요?
제가 php 개념이 완전히 무개념이라서....
일단 시도해 보겠습니다.
-----------------------------------------------------------------------------------
아... 안되네요.
<?=$list[$i][subject]?> 가 있는 것이 아니라, 일일이 수작업으로 나열해 나가는 것입니다.
1. 안녕하세요.
2. 저녁입니다.
3. 식사하세요.
이렇게 직접 제가 만들어 나가는 것이라서... <?=$list[$i][subject]?>를 사용하는 게 아니라서요.
그런데, 게시판에서 불러오는 것이 아니고 직접 수작업으로 나열해 나가는 것인데, $list를 사용해도 될까요?
제가 php 개념이 완전히 무개념이라서....
일단 시도해 보겠습니다.
-----------------------------------------------------------------------------------
아... 안되네요.
<?=$list[$i][subject]?> 가 있는 것이 아니라, 일일이 수작업으로 나열해 나가는 것입니다.
1. 안녕하세요.
2. 저녁입니다.
3. 식사하세요.
이렇게 직접 제가 만들어 나가는 것이라서... <?=$list[$i][subject]?>를 사용하는 게 아니라서요.
직접 짜서 처리한다면 sql 구문을 날리고 result 를 받고 루프를 for문으로 아래와 같이 돌립니다.
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list 대신 $row 가 들어가겠죠
$list[$i][num] 대신고유번호니깐 $i 만 넣어도 됩니다.
<a onclick=view(<?=$i?>)
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list 대신 $row 가 들어가겠죠
$list[$i][num] 대신고유번호니깐 $i 만 넣어도 됩니다.
<a onclick=view(<?=$i?>)

아... 저... 수작업으로 직접 써넣는 거라서, sql과는 관계가 없습니다.ㅠㅠ

계속적으로 관심 가지고 살펴주셔서 공수래공수거님께도 감사드립니다. (__)
내용이 수작업으로 이루워진다면..
$x[] = "안녕하세요.";
$y[] = "여기는 파리입니다. 날씨가 좋아요.";
$x[] = "저녁입니다.";
$y[] = "여기는 북경입니다. 날씨가 흐려요.";
$x[] = "식사하세요.";
$y[] = "여기는 런던입니다. 비가 와요.ㅠㅠ";
이런식으로 데이타를 작업하시고 for 를 사용시면 어떨까요...
for ($i = 0; $i < count($x); $i++) {
echo "<div><a onclick=view($i)>$x[$i]</a></div>
<div id='view_$i' style='display:none'>$y[$i]</div>
";
}
$x[] = "안녕하세요.";
$y[] = "여기는 파리입니다. 날씨가 좋아요.";
$x[] = "저녁입니다.";
$y[] = "여기는 북경입니다. 날씨가 흐려요.";
$x[] = "식사하세요.";
$y[] = "여기는 런던입니다. 비가 와요.ㅠㅠ";
이런식으로 데이타를 작업하시고 for 를 사용시면 어떨까요...
for ($i = 0; $i < count($x); $i++) {
echo "<div><a onclick=view($i)>$x[$i]</a></div>
<div id='view_$i' style='display:none'>$y[$i]</div>
";
}

텍와이드님, 답변 감사합니다.
위 소스로 적용하니까 바로 되네요. 감사드립니다. (__)^^
위 소스로 적용하니까 바로 되네요. 감사드립니다. (__)^^