테스트 사이트 - 개발 중인 베타 버전입니다

ajax를 이용하여 DB에서 값 가져오기 채택완료

승슝 4년 전 조회 3,463

고수님들 안녕하세요!!ㅠㅠ

지금 ajax로 DB값을 가져와보려고 하는데 에러가 발생하는데 이 에러를 어떻게 잡고 넘어가야할 지 잘 모르겠어서 찾아왔습니다,,ㅠㅠㅠ

정말 바쁘신 것 알지만 한번씩만 함께 생각해주세요ㅠㅠ

정말 감사합니다!!

</p>

<p>                <td></p>

<p>                    <a href="#" id="search">DB값 가져오기</a></p>

<p>                    <span id="result"></span></p>

<p>                    <script></p>

<p>                    $(document).ready(function() {</p>

<p>                        $("#search").on("click", function(e) {</p>

<p>                            e.preventDefault();</p>

<p>                            $.ajax({</p>

<p>                                url : " <a href="http://localhost/theme/basic/skin/board/purchase_feed/test.php"," target="_blank" rel="noopener noreferrer">http://localhost/theme/basic/skin/board/purchase_feed/test.php",</a></p>

<p>                                type : "post",</p>

<p>                                data : {</p>

<p>                                    tbl : "g5_write_code_feed",</p>

<p>                                    wr_1 : '생사료'</p>

<p>                                },</p>

<p>                                success : function(res) {</p>

<p>                                    if(res) {</p>

<p>                                        $("#result").text(res);</p>

<p>                                    }</p>

<p>                                }</p>

<p>                            });</p>

<p>                        });</p>

<p>                    });</p>

<p>                    </script></p>

<p>                </td></p>

<p>

버튼을 클릭하면 아래와 같은 에러가 발생하는데 어떻게 해야할지 모르겠씁니다!!

url 주소를 변경하여 test.php만 작성을 하면 POST 404(NOT Found) error가 발생합니다!!

 

도와주세요!ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
4년 전

1. 호출 도메인이 http://localhost 가 맞나요? 아니시면 실 도메인으로 변경하셔야 합니다.
2. 로그에 test.php 호출시 500 에러가 뜹니다. 뭔가 test.php 파일내에 오류가 있는 것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

승슝
4년 전
댓글 정말 감사합니다!!ㅠㅠㅠ
제가 그전에 ajax로 다른 한글파일을 불러오는 예제를 했었는데 그 때 도메인을 저렇게 지정하고 하니깐 열리더라구요! 그래서 저 도메인은 맞는 것 같습니다
그럼 만듦님 말씀대로 test.php 파일 문제인 것 같은데 이 때 어떤 문제가 생겨서 어떤 걸 수정해야할지 감을 못 잡고 있어 질문 남겼습니다ㅠㅠ

test.php 코드
[code]
<?php
include_once('_common.php');
$table = $_POST['tbl'];
$wrid = $_POST['wr_1'];
$result = sql_fetch("SELECT `wr_subject` FROM ".$table." WHERE `wr_1` = ".$wrid);
echo $result['wr_subject'];
echo $result;
?>
[/code]

이렇게 수정하여 진행하고 있는데 잘 되지 않네요ㅠㅠㅠㅠㅠ

저는 이곳의 글을 보고 진행하고 있습니다!!
https://sir.kr/qa/330419
만듦
4년 전
제가 보기엔 echo $result; 이거때문인거 같긴한데.. display_error 가 off 인지라 정확히 확인이 안되네요.
승슝
4년 전
display_error off 때문이라고 하셔서

test.php
[code]
<?php
error_reporting(E_ALL);

ini_set("display_errors", 1);

include_once('_common.php');
$table = $_POST['tbl'];
$wrid = $_POST['wr_1'];
$result = sql_fetch("SELECT `wr_subject` FROM ".$table." WHERE `wr_1` = ".$wrid);
echo $result['wr_subject'];
?>
[/code]

위 코드를 추가했는데 더이상 POST 500은 뜨지 않았지만 아직도 에러가 발생합니다.

에러 발생확인은 아래 코드에서

write.skin.php
[code]
<td>
<a href="#" id="search">DB값 가져오기</a>
<span id="result"></span>
<script>
$(document).ready(function() {
$("#search").on("click", function(e) {
e.preventDefault();
$.ajax({
url : "http://localhost/theme/basic/skin/board/purchase_feed/test.php",
type : "POST",
dataType : "json",
data : {
tbl : "g5_write_code_feed",
wr_1 : '생사료'
},
success : function(res) {
if(res) {
$("#result").text(res);
alert("SUCCESS!");
}
},
error: function(res){
alert(res);
alert("error");
}
});
});
});
</script>
</td>
[/code]

error시 alert문를 넣어 어떤 에러가 나오지 확인하려고 하였습니다.

그 결과 alert창에는 [oject oject] 라는 경고창하나가 나오고 그 다음 [error] 메세지가 표출되었습니다. 아예 test.php로 넘어가지는 못하는 것 같습니다.

댓글을 작성하려면 로그인이 필요합니다.

test.php
<?php
include '_common.php';

$tbl="g5_write_code_feed"
$wr_1='생사료';

이렇게 바꾸시고


 http://localhost/theme/basic/skin/board/purchase_feed/test.php
이 파일을 브라우저로 불러서 에러 메시지를 확인해 보세요.
에러 메시지 확인하는 방법은
https://sir.kr/qa/?wr_id=405998
참고 하시고
                               
로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

승슝
4년 전
에러문구가 이렇게 나옵니다 ㅠㅠㅠㅠㅠㅠㅠㅠ
Fatal error: Uncaught Error: Class "G5_object_cache" not found in C:\xampp\g5\theme\basic\skin\board\purchase_feed\common.php:143 Stack trace: #0 C:\xampp\g5\theme\basic\skin\board\purchase_feed\test.php(2): include() #1 {main} thrown in C:\xampp\g5\theme\basic\skin\board\purchase_feed\common.php on line 143

common.php 143은 $g5_object = new G5_object_cache(); 입니다!

test.php
[code]<?php
include 'common.php';
$tbl="g5_write_code_feed";
$wr_1='생사료';

$result = sql_fetch("SELECT `wr_subject` FROM ".$tbl." WHERE `wr_1` = ".$wr_1);
echo $result['wr_subject']; [/code]
만듦
4년 전
include 'common.php'; 라고 하면 해당 디렉토리의 common.php 를 불러오게 됩니다.
../../../../../common.php 나 ../ 하나 더 주셔야 할듯..
승슝
4년 전
죄송합니다 ㅠㅠ 제가 ajax가 처음이여서 ajax 실행파일 위치를 어떻게 정해야하는지 잘 몰라서 나오지 않았던 것 같습니다!! bbs안으로 옮기고 진행하니 값이 나왔습니다1! 감사합니다`~

댓글을 작성하려면 로그인이 필요합니다.

4년 전

제가 지금 

 

이 코드로 경고창에 성공이 나타나게 확인은 했는데

 

이번에는 test.php에서 sql문으로 바꿔주질 못하고 있는데 어떻게 해결해야할까요?ㅠㅠ

test.php

 고수님들 제발 도와주세요ㅠㅠㅠㅠ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

만듦
4년 전
common.php 인클루드를 그누보드 설치된 최상단의 common.php 로 변경해보세요.
include_once('_common.php'); 이거요.
근데 결과값을 어떤걸 출력하려고 하시는건지요?
승슝
4년 전
제가 최상단에 common.php 파일을 같은 파일로 옮겨놓고 include_once('common.php'); 이렇게 했는데 function sql_fetch() 가 정의되지 않았다고 출력이 됩니다ㅠㅠㅠ sql_fetch()를 사용하면서 이런 상황은 처음이라서 어떻게 해야할지,, 막막합니다ㅠㅠ
승슝
4년 전
결과값을 테이블에 있는 DB값을 불러오려고 합니다!!!
승슝
4년 전
제가 그래서 생각하기에는 lib/common.lib.php파일을 include_once 해주면 어떨까하고 했는데 no such file 이라고 하면서 다른 에러만 발생하였습니다ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

이런식으로 url을 바꿔보세요

</p>

<p>$(document).ready(function() {

    $("#search").on("click", function(e) {

        e.preventDefault();

        $.ajax({

        url: g5_url+"/theme/basic/skin/board/purchase_feed/test.php",

        type : "post",

        data : {

            tbl : "g5_write_code_feed",

            wr_1 : '생사료'

        },

        success : function(res) {

            if(res) {

            $("#result").text(res);

            }

        }

        });

    });

});</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

승슝
4년 전
함께 고민해주시고 댓글 남겨주셔서 정말 감사합니다.
고수님이 말씀해주신대로 url을 수정하였지만 같은 오류가 그대로 발생합니다ㅠㅠㅠ

test.php코드가 잘못된 것이 있을까해 코드 올립니다
[code]
<?php
include_once('_common.php');
$table = $_POST['tbl'];
$wrid = $_POST['wr_1'];
$result = sql_fetch("SELECT `wr_subject` FROM ".$table." WHERE `wr_1` = ".$wrid);
echo $result['wr_subject'];
echo $result;
?>
[/code]

https://sir.kr/qa/330419

저는 이곳을 참고하여 지금 제작하고 있으나 에러가 발생하여 응용을 못하고 있는 중입니다ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인