javascript - php mysqli fetch_all()이 json을 정상적으로 반환하지만 프런트엔드 ajax가 json을 가져올 수 없습니까?
淡淡烟草味
淡淡烟草味 2017-05-16 13:11:56
0
1
932

php 코드

<코드><?php
//"db_connect.php"를 포함합니다;
$db = new MySQLi("localhost", "root", "password", "pagination");
$db->set_charset('utf8mb4');

header('콘텐츠 유형: 애플리케이션/json;charset=utf-8');

$total = 0; //테이블 데이터의 총 행 수
$per_page = 6; // 페이지당 줄 수
$current_page = 1; // 현재 표시되는 페이지는 무엇입니까?
$total_pages = 0; //총 페이지 수

// 현재 페이지 번호를 가져옵니다.
if (!empty($_GET['current_page'])) {
  $current_page = $_GET['현재_페이지'];
}

// 테이블 데이터의 총 행 수를 가져옵니다.
$query1 = '사용자로부터 개수(*) 선택';
$row1 = $db->query($query1);
if ($row1 && $rowd = $row1->fetch_row()) {
  $total = $rowd[0];
}

// 총 페이지 수를 구합니다.
$total_pages = ceil($total / $per_page);

// 페이징
$pre = ($current_page - 1) * $per_page;
$query2 = "사용자 제한 $pre,$per_page에서 * 선택";
$rows = $db->query($query2);

$arr = [];
if($행) {
  $arr = $rows->fetch_all(MYSQLI_ASSOC);
}
$페이지 매김 = [
  '총계' => $총계,
  '페이지당' => $페이지당,
  '현재_페이지' => $현재_페이지,
  '총_페이지' =>
];

array_push($arr, $페이지 매김);
echo json_encode($arr, true);

우체부 스크린샷:

js 코드:

 window.onload = 함수 () {
        getData(1);
    }

    function addURLParam(url, 이름, 값) {
        url += (url.indexOf("?") == -1 ? "?" : "&");
        url += encodeURIComponent(이름) + "=" + encodeURIComponent(값);
        반환 URL;
    }
    
    함수 getData(페이지) {
        var data = document.getElementById("data");

        var xhr = 새로운 XMLHttpRequest();
        xhr.onreadystatechange = 함수() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                var jsonText = xhr.responseText;
                console.log(JSON.parse(jsonText));
            }
        }
        var url = "paginate.php";
        url = addURLParam(url, "current_page", "페이지");
        xhr.open("get", url, true);
        xhr.send();
    }

크롬 콘솔 앞의 데이터베이스에 콘텐츠가 없습니다.

해야지

$query2 = "사용자 제한 $pre,$per_page에서 * 선택";
$rows = $db->query($query2);

$arr = [];
if($행) {
  $arr = $rows->fetch_all(MYSQLI_ASSOC);
}

여기에는 if ($rows)를 추가하기 전에 오류가 발생하기 때문에 sql에 문제가 있습니다. 그러나 php 버전이 7.0.8인데 왜 정상적으로 실행되는지 매우 놀랐습니다. class="img-wrap ">

淡淡烟草味
淡淡烟草味

모든 응답(1)
巴扎黑

js가 addURLParam()에 매개변수를 올바르게 전달하지 못하는 문제입니다

으아아아

로 변경되었습니다. 으아아아

질문을 올린 후 이런 버그를 발견했다는게 정말 부끄럽습니다. 질문을 한 번 수정하고 수정했는데, 학교에 정전이 되고 컴퓨터도 전원이 나가서 테스트를 할 수 없었습니다. . . . . .


하지만 중요한 점은 addURLParam 메소드를 마지막에 추가했다는 점입니다. 으아아아

addURLParam()은 js 고급 프로그래밍의 메서드입니다.

GET 요청을 사용할 때 자주 발생하는 오류는 쿼리 문자열 형식에 문제가 있다는 것입니다. 쿼리 문자열에 있는 각 매개변수의 이름과 값은 URL 끝에 배치되기 전에 encodeURIComponent()를 사용하여 인코딩되어야 합니다

이유를 아시는 친구들이 답변해드릴 수 있으니 먼저 검색해보겠습니다~

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿