안녕하세요. 궁금한게 많은 초보라 또 질문이 있습니다...ㅠ_ㅠ
제가 원하는 결과물은 아래와 같습니다.
<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개 / 댓글 3개
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) + '번 이미지입니다.' });
답변에 대한 댓글 1개
같은 sql_fetch_array($result) 를 하려면 index의 위치를 0으로 옮겨서 실행해주어야합니다.
mysql_data_seek 을 이용해서 0으로 옮겨주세요.
답변에 대한 댓글 2개
구글에서 mysql_data_seek 를 찾아 보고 있는데 뭔말인지 이해가 안갑니다...;;;;
답변을 작성하려면 로그인이 필요합니다.
구글에서 찾다보니
"전체 데이터를 배열에 담아두고, 이후로는 배열을 순회하면서 사용하는 편입니다"
라는 말이 나왔는데도 이해를 못했는데
적어 주신 코드를 보니 이해가 됩니다.
감사합니다!!