ajax 질문입니다.. 채택완료
humanb2box
8년 전
조회 2,369
</p><p>function IDchkBtns(){</p><p>
</p><p><span style="white-space:pre"> </span>// id입력받는 공간</p><p><span style="white-space:pre"> </span>var userid = document.getElementById("memberID").value;</p><p><span style="white-space:pre"> </span>// 중복되었는지 아닌지 글자가 바뀌는 부분 </p><p><span style="white-space:pre"> </span>var IDchkDesc = document.getElementById("memberHP");</p><p>
</p><p>
</p><p><span style="white-space:pre"> </span>xmlhttp = new XMLHttpRequest(); </p><p><span style="white-space:pre"> </span></p><p><span style="white-space:pre"> </span>xmlhttp.open("GET","/skin/board/wassane_request/memberHP.php.php?q="+userid,true);</p><p><span style="white-space:pre"> </span></p><p><span style="white-space:pre"> </span>xmlhttp.send();</p><p>
</p><p>
</p><p>
</p><p><span style="white-space:pre"> </span>xmlhttp.onreadystatechange=function(){</p><p><span style="white-space:pre"> </span></p><p><span style="white-space:pre"> </span>if(xmlhttp.readyState==4 && xmlhttp.status ==200){</p><p><span style="white-space:pre"> </span>IDchkDesc.innerHTML = xmlhttp.responseText;</p><p><span style="white-space:pre"> </span>}</p><p><span style="white-space:pre"> </span></p><p><span style="white-space:pre"> </span>}</p><p>
</p><p><span style="white-space:pre"> </span>}</p><p>
ajax 코드입니다.
</p><p><?php</p><p><span style="white-space:pre"> </span></p><p><span style="white-space:pre"> </span>$q = $_REQUEST['q'];</p><p><span style="white-space:pre"> </span>alert("$q");</p><p><span style="white-space:pre"> </span></p><p>
</p><p>
</p><p>$query = "select * from g5_member WHERE mb_name='$q' ";</p><p>$result = sql_query($query);</p><p>$memberHp = sql_fetch_array($result)</p><p>
</p><p><span style="white-space:pre"> </span>if(!$q){ echo "<strong style='color:red'>전화번호가 없습니다.</strong>";}</p><p><span style="white-space:pre"> </span>else{echo "<strong style='color:blue'>".$memberHp['mb_hp']."</strong>";}</p><p>
</p><p>?></p><p>
php 코드입니다..
제가 하고싶은건 멤버 아이디를 넘겨서 멤버 아이디에 전화번호를 respon 받고싶습니다..
제가 문법이 틀렸나요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
마르스컴퍼니
Expert
8년 전
개념적인 부분의 이해가 먼저 필요해 보입니다.
요청 페이지 A 에서 ajax 로 B 페이지 처리를 한 후, A 에서 그 결과를 보여주고 싶은 경우에는..
B 페이지의 결과값을 A 페이지에서 받아오면 됩니다.
그래서 그에 맞게 코드를 수정하면,
ajax 처리 페이지에서는,
echo $memberHP['mb_hp'] 로 단순 출력 처리만 해주면 됩니다.
(백그라운드로 처리되기 때문에, alert 등은 사용자에게 보여지지 않습니다.)
그러면 A 페이지의,
IDchkDesc.innerHTML = xmlhttp.responseText;
를 통해 xmlhttp.responseText 로 받아온 전화번호가 IDchkDesc 안에 들어가게 됩니다.
참고로, ajax 는 jquery 를 사용하면 보다 손쉽게 사용할 수 있습니다.
jquery 를 통한 ajax 사용 참고 페이지입니다. https://opentutorials.org/course/1375/6851">https://opentutorials.org/course/1375/6851
로그인 후 평가할 수 있습니다
답변에 대한 댓글 6개
h
humanb2box
8년 전
�
마르스컴퍼니
8년 전
디버깅 하는 방법은,
ajax 로 처리하는 페이지를 먼저 브라우저로 실행하여 결과값이 제대로 출력되는지 확인합니다.
ajax 처리 페이지의 URL 이 test.com/test/test.php 라면,
http://test.com/test/test.php 를 실행하여 결과값이 제대로 출력되는지 살펴봅니다.
정상적으로 처리된다면 전화번호가 출력될것입니다. ex) 1111-1111
ajax 처리페이지의 결과값이 제대로 출력된다면,
ajax 처리페이지에 요청을 하고, 결과값을 받아오는 부분의 검토가 필요합니다.
요청 페이지 자바 스크립트 소스
if(xmlhttp.readyState==4 && xmlhttp.status ==200){
IDchkDesc.innerHTML = xmlhttp.responseText;
}
를
if(xmlhttp.readyState==4 && xmlhttp.status ==200){
alert(xmlhttp.responseText);
IDchkDesc.innerHTML = xmlhttp.responseText;
}
처럼 alert 로 결과값을 제대로 받아오는지를 확인해 보는 식으로 디버깅하면 됩니다.
alert 로 제대로 결과값이 확인되지 않는다면, ajax 호출 자바 스크립트가 정상 작동하지 않는 것일 가능성이 있기 때문에, 그 부분이 작동되도록 수정하면 됩니다.
ajax 로 처리하는 페이지를 먼저 브라우저로 실행하여 결과값이 제대로 출력되는지 확인합니다.
ajax 처리 페이지의 URL 이 test.com/test/test.php 라면,
http://test.com/test/test.php 를 실행하여 결과값이 제대로 출력되는지 살펴봅니다.
정상적으로 처리된다면 전화번호가 출력될것입니다. ex) 1111-1111
ajax 처리페이지의 결과값이 제대로 출력된다면,
ajax 처리페이지에 요청을 하고, 결과값을 받아오는 부분의 검토가 필요합니다.
요청 페이지 자바 스크립트 소스
if(xmlhttp.readyState==4 && xmlhttp.status ==200){
IDchkDesc.innerHTML = xmlhttp.responseText;
}
를
if(xmlhttp.readyState==4 && xmlhttp.status ==200){
alert(xmlhttp.responseText);
IDchkDesc.innerHTML = xmlhttp.responseText;
}
처럼 alert 로 결과값을 제대로 받아오는지를 확인해 보는 식으로 디버깅하면 됩니다.
alert 로 제대로 결과값이 확인되지 않는다면, ajax 호출 자바 스크립트가 정상 작동하지 않는 것일 가능성이 있기 때문에, 그 부분이 작동되도록 수정하면 됩니다.
h
humanb2box
8년 전
500 에러가 뜹니다.. 스킨경로였는데 www아래에 넣어도 500에러가 뜹니다..
뭐가 문제일까요?
뭐가 문제일까요?
�
마르스컴퍼니
8년 전
500 에러는, 여기에서는 보통 php 오류입니다.
sql_query(), sql_fetch_array() 는 그누보드에서 자체적으로 정의한 함수이기 때문에
해당 함수를 사용하지 않거나, 사용하려면 인클루드를 해야 됩니다. include_once('../../../common.php'); (상대경로를 잘 맞추어서)
500 대신 php 오류메시지를 보고자 하는 경우에는,
error_reporting(E_ALL);
ini_set("display_errors", 1);
를 상단에 넣어주면 됩니다.
sql_query(), sql_fetch_array() 는 그누보드에서 자체적으로 정의한 함수이기 때문에
해당 함수를 사용하지 않거나, 사용하려면 인클루드를 해야 됩니다. include_once('../../../common.php'); (상대경로를 잘 맞추어서)
500 대신 php 오류메시지를 보고자 하는 경우에는,
error_reporting(E_ALL);
ini_set("display_errors", 1);
를 상단에 넣어주면 됩니다.
h
humanb2box
8년 전
네! common이 문제일것 같아서 넣으니 문제없이 진행됩니다.
헌데 아무것도 찍히지가 않네요..
$q = $_REQUEST['q'];
$query = "select * from g5_member WHERE mb_name='$q' ";
$result = sql_query($query);
$mhp = sql_fetch_array($result);
echo $mhp['mb_hp'] ;
이부분이 문제가 있나봅니다.
$q의 전화번호를 가져와야 하거든요.. 분명 db에 전화번호가 있습니다..
문법이 틀렸나요?
헌데 아무것도 찍히지가 않네요..
$q = $_REQUEST['q'];
$query = "select * from g5_member WHERE mb_name='$q' ";
$result = sql_query($query);
$mhp = sql_fetch_array($result);
echo $mhp['mb_hp'] ;
이부분이 문제가 있나봅니다.
$q의 전화번호를 가져와야 하거든요.. 분명 db에 전화번호가 있습니다..
문법이 틀렸나요?
�
마르스컴퍼니
8년 전
"/skin/board/wassane_request/memberHP.php.php?q="+userid
식으로 넘기는 경우라면,
브라우저에서 테스트(디버깅을 할 때도)
/skin/board/wassane_request/memberHP.php.php?q=abcd
처럼 주소입력을 하면 됩니다.
/skin/board/wassane_request/memberHP.php.php 만 하면 q 정보가 전달된 것이 아니니까요.
그러고 보니 파일이름이 memberHP.php.php 인가요? memberHP.php 로 수정해야 할 듯 합니다.
식으로 넘기는 경우라면,
브라우저에서 테스트(디버깅을 할 때도)
/skin/board/wassane_request/memberHP.php.php?q=abcd
처럼 주소입력을 하면 됩니다.
/skin/board/wassane_request/memberHP.php.php 만 하면 q 정보가 전달된 것이 아니니까요.
그러고 보니 파일이름이 memberHP.php.php 인가요? memberHP.php 로 수정해야 할 듯 합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그래도 반응이없습니다..
오류인지 아닌지.. 디버깅하는 방법좀 알 수 있을까요?