$list 데이터가 10개인데, 아래 코드를 실행하면 $i=0인 데이터만 스크립트가 진행되고, 나머지 $i=1에서 9는 스크립트가 실행되지 않아요. php for문에 있는 10개 모두에 스크립트가 적용되려면 어떻게 수정해야 하나요?
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
for ($i = 0; $i < count($list); $i++) {
echo "<span id='a' style='color: black;'>$list[$i][‘d’]</span>";
echo "<a onclick='javascript: c()'>클릭</a>";
?>
<script>
function c() {
var element = document.getElementById("a");
element.style.color = "white";
</script>
<?php } ?>
|
답변 3개 / 댓글 3개
채택된 답변
+20 포인트
eyekiss
2019-10-09 (수) 22:27:17
Copy
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
for ($i = 0; $i < count($list); $i++) {
echo "<span id='a$i' style='color: black;'>$list[$i][‘d’]</span>";
echo "<a onclick=\"javascript:c('a$i')\">클릭</a>";
?>
<?php } ?>
<script>
function c(id) {
var element = document.getElementById(id);
element.style.color = "white";
}
</script>
답변에 대한 댓글 2개
2019-10-09 (수) 22:49:36
위 처럼 실행해면, 첫번째도 스크립트를 받아오지 못하네요~~ 해결이 되지 않았어요. 특히 id에 $i를 붙인 이유를 알 수 있을까요? 위와 같이 하여도 $i=0은 실행되고, 나머지 스크립트는 $i=0번만 실행되네요~~~
eyekiss
2019-10-09 (수) 23:29:44
id 가 10개가 다 달라야하구요..
그 id 값을 넘겨서 style 을 변경해주는 겁니다.
제가 테스트해봤는데 이상없구요..
안된다면 다른 이유 입니다.
함수명 c 를 수정해보시거나,
아래 작은 따옴표 수정해주세요.
$list[$i][‘d’] => $list[$i]['d']
http://eyekiss.kr/test.php
그 id 값을 넘겨서 style 을 변경해주는 겁니다.
제가 테스트해봤는데 이상없구요..
안된다면 다른 이유 입니다.
함수명 c 를 수정해보시거나,
아래 작은 따옴표 수정해주세요.
$list[$i][‘d’] => $list[$i]['d']
http://eyekiss.kr/test.php
2019-10-09 (수) 23:36:20
='a".$i."'
2019-10-09 (수) 22:33:35
function c 가 for 문 바깥에 선언되어야 하는데 안에 있어서 오류가 난것 같습니다.
eyekiss님깨져서 처리해주셨네요 배우고 갑니다.
답변에 대한 댓글 1개
2019-10-09 (수) 22:51:40
에러는 없으나, 엉뚱하게 스크립트의 $i 나머지가 모두 $i=0으로 스크립트 실행되네요.
답변을 작성하려면 로그인이 필요합니다.