묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
php 고수분들 봐주세요.
2003.12.01 03:07
제가 하려는 이질문...다른 사이트 질문란에 올려봐도 답변이 잘 달리질 않네요. 제 설명이 부족한탓이 크겠지만 -_-;
암튼,, 이곳은 다르리라는 생각에 올려봅니다;
제가 할 질문은 말로 설명하자면 복잡하고; 그래서 일단
http://ryul100.cafe24.com/foldopen.php3?callname=볼거리들
http://ryul100.cafe24.com/foldopen.php3?callname=홈피소개
위의 링크를 따라 가보세요.
그리고 나서 거기 나오는 파일아이콘들을 한번씩 다 클릭해보세요. 한개도 빠짐없이..
그렇게 해보면 대충 뭐가 문제인지 아실겁니다.
문제는 바로, 아이콘 선택이 복수로 된다는거죠.
저는 실제 윈도우 처럼 파일아이콘 선택이 하나만 되도록 하고 싶은데 말입니다.
실제 윈도우 처럼.. 파일아이콘 한개만 선택되는거처럼 구현하는것이
제가 html하고 javascript만 이용했을 시절에는 가능했었거든요.
제가 가지고 있는 이미지 변경해주는 함수는 이미지 이름하고 바꿀 그림파일 경로명만
있으면 이미지가 변경이 되거든요,
그래서 html하고 javascript만 이용할때는
하나의 아이콘을 선택했을때, 그 파일아이콘의 이미지만 선택되어 있는 거처럼 바꿔주고
나머지 모두의 아이콘 이미지는 원래 모양대로 바뀌도록 해줘서
실제 윈도우에서 아이콘이 여러개 있을때 하나만 선택되는 효과를 흉내낼수 있었거든요.
[물론, 이때는 하나하나의 그림파일명을 입력하고, 각각의 경로명을 입력해 줘야하는 노가다가 필요했었지요.]
//제가 가진 이미지 변경함수
function img_change(name,imgpath)
{
var img = eval((navigator.appName == 'Netscape') ? nsdoc+'.'+name : 'document.all.'+name);
if (img) {
img.altsrc = img.src;
img.src = imgpath;
}
}
//
그런데,
지금은 php + mysql로 옮기게끔 제가 바꿔놨거든요. 제가 유지관리가 쉽도록 하기 위해서
말입니다.
그래서 저기 그림파일 경로명하고, 그림 이름하고, 클릭했을때, 바뀔 그림파일
이름을 마치 게시판에 글 저장시키듯 테이블을 만들어서 저장시켜놓고,
나중에 저 foldopen.php3라는 파일을 불러올때, 그 테이블에서 빼내오는 방식을
취했거든요. 마치 게시판 목록을 불러오듯이 말이죠.
그래서, 저절로 링크경로랑 그림파일 내용이랑 알아서 출력되도록 바꿔놨는데..
대충 이런식으루요.
----------------------------------
include "filemake_func.inc";
$connect = connect(); //filemake_func.inc에서 connect()를 이용해서 $connect를 구했음.
mysql_select_db("ryul100",$connect);
$query = "SELECT link1(그림파일경로), link2(클릭했을때 변환될 이미지), name(그림파일이름) FROM picturefiles(디비이름) WHERE '%$callname%'"
$result = mysql_query($query, $connect);
$row = mysql_fetch_array($result);
while ($row = mysql_fetch_array($result)) {
$row[link1] = stripslashes($row[link1]);
$row[link2] = stripslashes($row[link2]);
$row[name] = stripslashes($row[name]);
echo "<a onclick='img_change('$row[name]','마우스클릭할떄 변환될 이미지 경로($row[link2])')'>";
echo "<img src='그림파일의 경로($row[link1])' name='그림파일의 이름($row[name])'>";
echo "</a>";
}
----------------------------
그런데, 제가 아는 바로는 $row[name] , $row[link1] 이런식으로 값을 받으면
맨 마지막에 받는 값만 저장된다구 알고 있거든요?
[제가 이 대목에서 잘 모르는 부분이 있는거 같은데, 지적해주세요]
그래서, 이미지 하나하나의 이름을 제가 알수가 없어서 각각의 이름으로 이미지 파일을 변경하던 기존의 방법을 사용할수가 없더라구요.
이유는 저 while루프를 도는 동안 다른 데이터의 그림파일명과 링크 경로등이 저장되어있는 변수가 없거든요..
$row[name]은 지금 불러오고 있는 데이터의 name값을 가리키고,
$row[link1] 과 $row[link2]도 각각 지금 읽고있는 데이터의 link1과 link2의 값을 가리키거든요.
저 상태에서 다른 데이터의 name,link1,link2의 값을 읽을수만 있다면. 이전에 html하고 java에서
했던것처럼 구현이 가능할거 같은데.....
각각의 이름만 알면 알면, while루프속에 각각의 이미지 바꾸는 함수를 호출시켜서 바꿔주면 되니깐요.
그래서 결론은
*혹시 디비에서 배열로 값을 받을때 그 하나하나의 값을 저장하는 법을 알고 계시거나.
기타 위의 질문에 해결책이 있으신분은 알려주시라는 겁니다~
제가 언어적 능력이 딸려서 설명을 잘...-_-; 못하긴 하는데. 혹시 질문내용이 이해가 안가시면 답글달아주시고요.
그럼 답글 많이 달아주세요~
암튼,, 이곳은 다르리라는 생각에 올려봅니다;
제가 할 질문은 말로 설명하자면 복잡하고; 그래서 일단
http://ryul100.cafe24.com/foldopen.php3?callname=볼거리들
http://ryul100.cafe24.com/foldopen.php3?callname=홈피소개
위의 링크를 따라 가보세요.
그리고 나서 거기 나오는 파일아이콘들을 한번씩 다 클릭해보세요. 한개도 빠짐없이..
그렇게 해보면 대충 뭐가 문제인지 아실겁니다.
문제는 바로, 아이콘 선택이 복수로 된다는거죠.
저는 실제 윈도우 처럼 파일아이콘 선택이 하나만 되도록 하고 싶은데 말입니다.
실제 윈도우 처럼.. 파일아이콘 한개만 선택되는거처럼 구현하는것이
제가 html하고 javascript만 이용했을 시절에는 가능했었거든요.
제가 가지고 있는 이미지 변경해주는 함수는 이미지 이름하고 바꿀 그림파일 경로명만
있으면 이미지가 변경이 되거든요,
그래서 html하고 javascript만 이용할때는
하나의 아이콘을 선택했을때, 그 파일아이콘의 이미지만 선택되어 있는 거처럼 바꿔주고
나머지 모두의 아이콘 이미지는 원래 모양대로 바뀌도록 해줘서
실제 윈도우에서 아이콘이 여러개 있을때 하나만 선택되는 효과를 흉내낼수 있었거든요.
[물론, 이때는 하나하나의 그림파일명을 입력하고, 각각의 경로명을 입력해 줘야하는 노가다가 필요했었지요.]
//제가 가진 이미지 변경함수
function img_change(name,imgpath)
{
var img = eval((navigator.appName == 'Netscape') ? nsdoc+'.'+name : 'document.all.'+name);
if (img) {
img.altsrc = img.src;
img.src = imgpath;
}
}
//
그런데,
지금은 php + mysql로 옮기게끔 제가 바꿔놨거든요. 제가 유지관리가 쉽도록 하기 위해서
말입니다.
그래서 저기 그림파일 경로명하고, 그림 이름하고, 클릭했을때, 바뀔 그림파일
이름을 마치 게시판에 글 저장시키듯 테이블을 만들어서 저장시켜놓고,
나중에 저 foldopen.php3라는 파일을 불러올때, 그 테이블에서 빼내오는 방식을
취했거든요. 마치 게시판 목록을 불러오듯이 말이죠.
그래서, 저절로 링크경로랑 그림파일 내용이랑 알아서 출력되도록 바꿔놨는데..
대충 이런식으루요.
----------------------------------
include "filemake_func.inc";
$connect = connect(); //filemake_func.inc에서 connect()를 이용해서 $connect를 구했음.
mysql_select_db("ryul100",$connect);
$query = "SELECT link1(그림파일경로), link2(클릭했을때 변환될 이미지), name(그림파일이름) FROM picturefiles(디비이름) WHERE '%$callname%'"
$result = mysql_query($query, $connect);
$row = mysql_fetch_array($result);
while ($row = mysql_fetch_array($result)) {
$row[link1] = stripslashes($row[link1]);
$row[link2] = stripslashes($row[link2]);
$row[name] = stripslashes($row[name]);
echo "<a onclick='img_change('$row[name]','마우스클릭할떄 변환될 이미지 경로($row[link2])')'>";
echo "<img src='그림파일의 경로($row[link1])' name='그림파일의 이름($row[name])'>";
echo "</a>";
}
----------------------------
그런데, 제가 아는 바로는 $row[name] , $row[link1] 이런식으로 값을 받으면
맨 마지막에 받는 값만 저장된다구 알고 있거든요?
[제가 이 대목에서 잘 모르는 부분이 있는거 같은데, 지적해주세요]
그래서, 이미지 하나하나의 이름을 제가 알수가 없어서 각각의 이름으로 이미지 파일을 변경하던 기존의 방법을 사용할수가 없더라구요.
이유는 저 while루프를 도는 동안 다른 데이터의 그림파일명과 링크 경로등이 저장되어있는 변수가 없거든요..
$row[name]은 지금 불러오고 있는 데이터의 name값을 가리키고,
$row[link1] 과 $row[link2]도 각각 지금 읽고있는 데이터의 link1과 link2의 값을 가리키거든요.
저 상태에서 다른 데이터의 name,link1,link2의 값을 읽을수만 있다면. 이전에 html하고 java에서
했던것처럼 구현이 가능할거 같은데.....
각각의 이름만 알면 알면, while루프속에 각각의 이미지 바꾸는 함수를 호출시켜서 바꿔주면 되니깐요.
그래서 결론은
*혹시 디비에서 배열로 값을 받을때 그 하나하나의 값을 저장하는 법을 알고 계시거나.
기타 위의 질문에 해결책이 있으신분은 알려주시라는 겁니다~
제가 언어적 능력이 딸려서 설명을 잘...-_-; 못하긴 하는데. 혹시 질문내용이 이해가 안가시면 답글달아주시고요.
그럼 답글 많이 달아주세요~
댓글 3
-
특급잠수부
2003.12.01 16:45
-
백승렬
2003.12.01 20:03
예 맞습니다. 근데 중간과정에서 다른 데이터의 값을 못받는다는게 제가 질문한 요지인데요.
다른 데이터의 값을 while문 밖에서도 받을 수 있도록 하려면 어떻게 해야 할까요? -
백승렬
2003.12.01 20:21
아 while문 사이에 배열을 끼어 넣어서 저장해주면 되는군요!
아까 어떤 분이 답글 다셨었는데, 지우셨네요. 그분 감사~
()의 연산이 false가 나올때까지 뺑뺑이 돕니다.
마지막은 당연히 반복문이므로 마지막값이 기억되겠죠.
하지만 중간과정에는 각기 제 값들이 나온답니다..