336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
모바일 웹 페이지에서
더보기 기능을 구현하려고
이 페이지를 참고 했는데
출처 : http://www.setisigns.net/m/post/384
ASP 페에지 코딩 부분
호출 페이지로 전달할 데이터를 생성해 낸다.
호출된 데이터는 JSON 타입으로 사용하기 위해 문자열로 만들어준다.
<% response.charset = "utf-8" dim cmd, db set db = server.createobject("adodb.connection") db.open "provider=sqloledb; data source = IP Address;uid=DBID;pwd=PASSWORD;database=DBNAME" set cmd = server.createobject("adodb.command") cmd.activeconnection = db cmd.commandtext = spNAME cmd.commandtype = 1 set rs = cmd.execute if not rs.eof then OpenEventCommentList = rs.getrows() end if rs.close set rs = nothing ' ============================================================ ' 배열로 저장된 레코드 셋 출력하기. ' ============================================================ dim rowCnt, colCnt rowCnt = ubound(OpenEventCommentList, 2) '행 colCnt = ubound(OpenEventCommentList, 1) '열 dim json if IsArray(OpenEventCommentList) then json = json + "[" for i=0 to rowCnt json = json + "{" for j=0 to colCnt if j=0 then json = json + """UserID"":""" end if if j=1 then json = json + """Content"":""" end if if j=2 then json = json + """RegDate"":""" end if json = json + OpenEventCommentList(j, i) json = json + """," next json = Mid(json, 1, len(json) -1) json = json + "}," next json = Mid(json, 1, len(json) -1) json = json + "]" end if response.write json %> |
HTML 호출 페이지
1. createXMLHttpRequest() 호출 객체를 생성한다.
2. 콜백함수를 호출할 getCommentList() 객체를 생성한다.
3. 콜백함수 getCommentList_Callback()를 생성한다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>댓글 기능</title> <script language="javascript" type="text/javascript"> var strTable = ""; function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } function getCommentList() { createXMLHttpRequest(); xmlHttp.onreadystatechange = getCommentList_Callback; xmlHttp.open("GET", "GetCmtList.asp", true); xmlHttp.send(); } function getCommentList_Callback() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { var obj = eval('(' + xmlHttp.responseText + ')'); strTable += "<table border='1' cellpadding='0' cellspacing='0'><tr><td>Idx</td><td>keyword</td><td>writeday</td></tr>"; for (var i = 0; i < obj.length; i++) { strTable += "<tr>"; strTable += "<td>" + obj[i]["UserID"] + "</td>"; strTable += "<td>" + obj[i]["Content"] + "</td>"; strTable += "<td>" + obj[i]["RegDate"] + "</td>"; strTable += "</tr>"; } strTable += "</table>"; document.getElementById("CommentList").innerHTML = strTable; } } } </script> </head> <body> <div id="CommentList"></div> <form id="eventComment"> <textarea name="content" id="cheerContent" cols="100" rows="3"></textarea> <input type="button" value="comment" /> </form> <script type="text/javascript" language="javascript"> getCommentList(); </script> </body> </html>
|
자꾸만 성공 200인데도 불구하고 eval을 하려고 할 때마다
이런에러를 퐁퐁 뱉었다.
맨처음에 ajaxsubmit 을 사용해서 dataType: "json", 을 했었는데
위와 같은 에러가 나오고, text를 하면 받아 오길래
얘가 asp에서 반환한 값이 json 문법으로는 이상이 없지만
text로 인식하는구나를 느낌.
그래서 eval을 시도했던건데 여기에서 계속 또 에러가 잡힘.
그런데 alert 해서 찍어 볼 때마다 엔터가 있어서 이상하다싶기는 했었는데
이게 핵심이었음.... 하하하.
받아온 값을
var value = xmlHttp.responseText;
value = value.replace(/\r\n/g, '');
이렇게 해줬더니 엔터가 다 사라지고 괜찮아짐. 하하하하.
그리고 ajaxsubmit 쓰려다가 저 위에껄 따라서 하긴 했는데 저거 잘 된다.
그래요! 저는 오늘도 좀 더 성장했습니다.
댓글