무식한 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";
?>
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;
존재하지 않는 곳에 결과값을 넣은게 되는거죠..
<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]
<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 로 빼와 보시길...
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 로 빼와 보시길...
CDATA로 값을 전했기 때문에 파싱의 문제는 아닌거 같아요.