jQuery 스크립트 안에서의 for문 질문 드립니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
jQuery 스크립트 안에서의 for문 질문 드립니다.

QA

jQuery 스크립트 안에서의 for문 질문 드립니다.

본문

안녕하세요. 궁금한게 많은 초보라 또 질문이 있습니다...ㅠ_ㅠ

 

제가 원하는 결과물은 아래와 같습니다.

 

<a href="#1" class="link1"><img src="./img/1.jpg" /></a>

<a href="#2" class="link2"><img src="./img/2.jpg" /></a>

<a href="#3" class="link3"><img src="./img/3.jpg" /></a>

<a href="#4" class="link4"><img src="./img/4.jpg" /></a>

<a href="#5" class="link5"><img src="./img/5.jpg" /></a>

 

<script type="text/javascript">
 $(document).ready(function () {
  $('a.link1').gips({ 'theme': 'purple',text: ' 1번 이미지입니다.' });
  $('a.link2').gips({ 'theme': 'purple',text: ' 2번 이미지입니다.' });
  $('a.link3').gips({ 'theme': 'purple',text: ' 3번 이미지입니다.' });
  $('a.link4').gips({ 'theme': 'purple',text: ' 4번 이미지입니다.' });
  $('a.link5').gips({ 'theme': 'purple',text: ' 5번 이미지입니다.' });
 });
</script>

 

위처럼 결과를 얻고자 아래처럼 for문을 썼습니다.

 


<?php
 for ($i=1; $row=sql_fetch_array($result); $i++) {
  echo '<a href="#'.$i.'" class="link'.$i.'"><img src="./img/'.$i.'.jpg" /></a>';
 }
?>
<script type="text/javascript">
 $(document).ready(function () {
 <?php
  for ($i=1; $row=sql_fetch_array($result); $i++) {
 ?>
  $('a.link<?php echo $i;?>').gips({ 'theme': 'purple',text: ' <?php echo $i;?>번 이미지입니다.' });
 <?
  }
 ?>
 });
</script>

 

이렇게 했더니 결과물이 아래처럼 나옵니다.

 


<a href="#1" class="link1"><img src="./img/1.jpg" /></a>
<a href="#2" class="link2"><img src="./img/2.jpg" /></a>
<a href="#3" class="link3"><img src="./img/3.jpg" /></a>
<a href="#4" class="link4"><img src="./img/4.jpg" /></a>
<a href="#5" class="link5"><img src="./img/5.jpg" /></a>
 
<script type="text/javascript">
 $(document).ready(function () {
 });
</script>

 

즉 jquery 안에 있는

$('a.link<?php echo $i;?>').gips({ 'theme': 'purple',text: ' <?php echo $i;?>번 이미지입니다.' });

이 부분이 루프 되지 않거나 잘못된 것 같은데

어떻게 하면 원하는 결과물을 얻을 수 있을까요?

이 질문에 댓글 쓰기 :

답변 2

sql_fetch_array() 는 한 레코드씩을 가져옵니다.

첫번째 루프문에서 모든 레코드를 가져왔기 때문에, 다음 루프문에서는 가져올 것이 없게 됩니다.

 

for ($i=1; $row=sql_fetch_array($result); $i++) {

  $list[$i] = $row;

$cnt_list = count($list);

로 별도의 배열 변수에 담은 다음, 두 곳의 루프문을 다음과 같은 식으로 고쳐주는 방법이 있습니다.

 

for ($i=1; $i <= $cnt_list; $i++) {

 

 

* 별도로, jquery 구문만으로 처리하는 방법은 다음과 같습니다.

$('a[class^=link').gips({'theme': 'purple', text: ' ' + $(this).attr('class').slice(-1) + '번 이미지입니다.' });                   

감사합니다.
구글에서 찾다보니
"전체 데이터를 배열에 담아두고, 이후로는 배열을 순회하면서 사용하는 편입니다"
라는 말이 나왔는데도 이해를 못했는데
적어 주신 코드를 보니 이해가 됩니다.

감사합니다!!

같은 sql_fetch_array($result) 를 하려면 index의 위치를 0으로 옮겨서 실행해주어야합니다.

mysql_data_seek 을 이용해서 0으로 옮겨주세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 78
QA 내용 검색
filter #for ×

회원로그인

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