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으로 옮겨주세요.