무식한 ajax 최근글이 안되는 이유가 뭘까요? ㅠ..ㅠ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

무식한 ajax 최근글이 안되는 이유가 뭘까요? ㅠ..ㅠ 정보

무식한 ajax 최근글이 안되는 이유가 뭘까요? ㅠ..ㅠ

본문

ajax 최근글을 무식하게... 서버단에서 latest를 실행한 다음 그 값을
CDATA에 넣어서 보내주면 그것을 div의 innerHTML에 넣도록 했어요.

머릿속에서는 그럴 듯 했는데, 실제로 해보니까 안되요. Object error가... ㅠ..ㅠ

ajax 고수님들 한번 보시고 헛점을 찔러주세요.

---

ajax_latest.php

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

?>

<? if ($is_member) { ?> <!-- 회원인 경우에만 ajax가 작동하게 합니다 -->

<script type="text/javascript" language="javascript">

<!-- ajax -->

var xmlHttp;

startRequest();

function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}
   
function startRequest() {
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET", "<?=$g4[path]?>/ajax/ajax_latest_connect.php", true); // connect program의 location
    xmlHttp.send(null);
}

function handleStateChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            var xmlDoc = xmlHttp.responseXML;
            var xml_latest = xmlDoc.getElementsByTagName("latest");
            document.getElementById('latest_1').innerHTML = xml_latest;
        }
    }
}

</script>

<!-- layer에 대한 정의 -->
<div id="latest_1" name="latest_1">
</div>
<? } ?>

---

ajax_latest_connect.php

<?php
include_once("./_common.php");
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$g4[path]/lib/latest.group.lib.php");

$tmp_latest = "ffff"; // 테스트니까 ... ㅋㅋ

Header("Content-type: text/xml; charset=$g4[charset]");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache"); 

echo "<?xml version=\"1.0\" encoding=\"$g4[charset]\"?>"; // 이거 빼 먹으면 개체오류 나옵니다. ㅠ..ㅠ
echo "<latest><![CDATA[{$tmp_latest}]]></latest>\n";
?>

댓글 전체

html 페이지는 순차적으로 불려집니다.

<div id="latest_1" name="latest_1"></div> 

이 코드가 실행되기 전에 startRequest();  함수를 실행하셨으니

document.getElementById('latest_1').innerHTML = xml_latest;

존재하지 않는 곳에 결과값을 넣은게 되는거죠..
<!-- layer에 대한 정의 -->
<div id="latest_1" name="latest_1">
</div> 

그렇다면 <div...를 앞에 넣으면 되야 하지 않나요??? 앞에 넣었더니 역쉬 애러가 ㅠ..ㅠ

[object HTMLCollection]
지금 제가 질문을 잘못 이해 할 수도있습니다.


xml 을 요청하는데. $g4[path]/lib/latest.group.lib.php 의 내용이 xml 로 파싱 되어 있는지 모르겠습니다.

그리고
            var xml_latest = xmlDoc.getElementsByTagName("latest");
            document.getElementById('latest_1').innerHTML = xml_latest;

위 부분에서. getElementsByTagName 으로 값을 호출 하는데.
xml_latest 값이 제대로 나올지가 궁금하고요.

우선. responseText 로 빼와 보시길...
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT