PHP7 메시지 보드 개발의 Ajax 페이징
php7 tutorial이 칼럼에서는 메시지 보드 개발의 Ajax 페이징을 소개합니다
권장(무료): php7 tutorial
기본 페이지의 지원으로 사용자를 개선하고 싶습니다. 페이지 경험이 있는 경우 비동기 데이터 로딩이 현재 이를 처리하는 가장 좋은 방법입니다. Ajax 페이징은 연습을 위한 최고의 응용 시나리오입니다. 사용된 지식 포인트는 Friends의 마지막 수업인 PHP7 메시지 보드 개발(Ajax 비동기 제출)에서 어느 정도 소개되었습니다. 이전 섹션의 내용을 읽어보세요.
튜토리얼 분석
-
1.
정의 JavaScript에는 함수 기반 범위가 정의되어 있는 한 현재 페이지를 전역적으로 사용할 수 있습니다. 식별자는gotopage(){}
함수gotopage
입니다. -
2、Ajax异步操作
上节课的内容,这里最要是异步请求的时候注意是GET
方式,ajax.php
是异步请求服务端需要处理的逻辑文件,接收用户翻页请求,返回响应页数的数据即可(当然其他格式的内容就行,比如JSON,这里就不讲解)。 3、JS打印数据
innerHTML
gotopage(){}
函数JavaScript具有基于函数的作用域,只要定义了,当前页面的是全局可用的,标识就是gotopage
。在指定的页面区域打印翻页数据<ul id="list_box"><u/>
,这里的样式结构是要在ul标签内输出内容,所以用JS选择器document.getElementById("list_box")
,获取ul标签的对象,然后运用其中的innerHTML
属性赋值内容,完成我们想要的结果document.getElementById("list_box").innerHTML = '服务器返回的数据';
4、JS循环
for
的运用,遍历所有页码并标识当前页码
用选择器获取所有的页面对象var pageno = document.getElementsByClassName('pageno');
计算总页码数量pageno.length
for
循环遍历直到匹配到当前用户请求的page
页码数即当前页,匹配成功就给当前页数添加样式(标识当前请求成功的页数)。
本教程基于老友记之PHP7留言板开发(分页)内容上改动。
HTML代码list.php
<?php include 'config.php'; $page = !empty($_GET['page'])?intval($_GET['page']):1; $keyword = !empty($_GET['keyword'])?strip_tags($_GET['keyword']):''; $pagesize = 6; // 统计总记录数,便于计算出总页数 if(!empty($keyword)){ $sql = "SELECT * FROM feedback WHERE name LIKE '%{$keyword}%'"; }else{ $sql = "SELECT * FROM feedback"; } $result = mysqli_query($mysqli, $sql); $total = mysqli_affected_rows($mysqli); $total_page = ceil($total/$pagesize); // 进一法取整获取总页数 // 开始分页查询,根据page计算偏移量 $offset = ($page - 1) * $pagesize; if(!empty($keyword)){ $sql = "SELECT * FROM feedback WHERE name LIKE '%{$keyword}%' LIMIT {$offset}, {$pagesize}"; }else{ $sql = "SELECT * FROM feedback LIMIT {$offset}, {$pagesize}"; } $result = mysqli_query($mysqli, $sql); $lists = array(); while($rows = mysqli_fetch_array($result)){ $lists[] = $rows; } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>异步翻页+列表带搜索功能_留言板_科科分享</title> <!-- 2.新建css样式文件并根据效果图编写css代码 --> <link rel="stylesheet" href="feedback.css"> <script> function gotopage(page, keyword){ if(page<0){ page = 1; } // 创建 XMLHttpRequest 对象 var ajax, url; if(window.XMLHttpRequest){ ajax = new XMLHttpRequest(); }else{ // 兼容Internet Explorer(IE5 和 IE6)使用 ActiveX 对象 ajax = new ActiveXObject("Microsoft.XMLHTTP"); } url = 'page.php?page=' + page + '&keyword=' + keyword; ajax.open('GET', url, true); ajax.send(); ajax.onreadystatechange = function(){ // 获取服务器响应状态码 if(ajax.readyState == 4 && ajax.status==200){ // 获取服务器返回的响应返回的数据 var retdata = ajax.responseText; // 如果返回的时候不为空的时候,就输出 if(retdata){ // 这里是将异步请求的数据 在指定区域(list_box)展示给用户看 document.getElementById("list_box").innerHTML = retdata; // 最后将页面中的定位当前分页数,告诉用户当前在哪个分页 // 这里相对逻辑会复杂点,慢慢领会 // 第一步获取所有分页数的集合 var pageno = document.getElementsByClassName('pageno'); // 这里用到for循环遍历 从多个分页的集合获取当前用户点击的那个分页链接并添加样式active for(var i=0; i<pageno.length; i++){ pageno[i].className = 'pageno'; // parseInt(i)+1意思是当前分页, if(parseInt(i)+1 == page){ pageno[i].className = 'pageno active'; } } } } } } </script> </head> <body> <!-- 工作区,呈现给用户看的 --> <!-- 1.开始搭建脚手架 --> <p class="container_box"> <p class="up"> <h3 class="title">留言板</h3> <h5 class="subtitle">LIST</h5> </p> <p class="down list"> <p class="search"> <form action="list.php"> 关键词:<input type='text' name="keyword" value="<?php echo $keyword?>" /> <input type="submit" value="去搜索"> </form> </p> <ul id="list_box"> <?php foreach($lists as $item){ ?> <li>姓名:<?php echo $item['name']?> 联系方式:<?php echo $item['contact']?> 内容:<?php echo $item['content']?></li> <?php } ?> </ul> <p class="pages"> <ul> <?php for($p = 1; $p<=$total_page; $p++){ ?> <li class="pageno"><a href="javascript:gotopage(<?php echo $p?>, '<?php echo $keyword?>');"><?php echo $p?></a></li> <?php } ?> </ul> </p> </p> </p> </body> </html
异步分页代码page.php
2. Ajax 비동기 작업 이전 강의 내용 중 여기서 가장 중요한 것은 비동기 요청을 할 때 GET
메서드에 주의하는 것입니다. >ajax.php 비동기 요청 서버에서 처리해야 하는 논리 파일입니다. 사용자의 페이지 넘김 요청을 수신하고 응답 페이지 수(물론 내용은 다음과 같습니다)를 반환하면 됩니다. JSON과 같은 다른 형식은 여기서 설명하지 않습니다.) 3. JS 인쇄 데이터 innerHTML
지정된 페이지 영역의 페이지 넘김 데이터 인쇄 위 내용은 PHP7 메시지 보드 개발의 Ajax 페이징의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!에서 스타일 구조는 ul 태그 내의 콘텐츠를 출력하는 것이므로 JS 선택기
document.getElementById("list_box")
를 사용하여 ul 태그 객체를 얻은 다음 innerHTML
속성을 사용하여 우리가 원하는 결과를 얻기 위해 콘텐츠를 할당합니다. document.getElementById("list_box").innerHTML = '서버에서 반환된 데이터'; code>
🎜4. JS 루프 for
를 사용하여 모든 페이지 번호를 탐색하고 현재 페이지 번호 식별🎜선택기 사용 모든 페이지 객체를 얻으려면var pageno = document.getElementsByClassName('pageno');
🎜전체 페이지 번호 계산pageno.length
🎜현재 사용자 요청이 일치할 때까지 반복합니다.
페이지
페이지 번호는 현재 페이지입니다. 일치에 성공하면 현재 페이지 번호에 스타일이 추가됩니다(현재 페이지 번호를 식별함). 요청이 성공했습니다). 🎜🎜본 튜토리얼은 프렌즈의 PHP7 게시판 개발(페이지네이션) 컨텐츠를 기반으로 제작되었습니다. 🎜
🎜HTML 코드 list.php
🎜<?php
include 'config.php';
$page = !empty($_GET['page'])? intval($_GET['page']):1;
$keyword = !empty($_GET['keyword'])?addslashes(strip_tags($_GET['keyword'])):'';
$pagesize = 6;
// 开始分页查询,根据page计算偏移量
$offset = ($page - 1) * $pagesize;
if(!empty($keyword)){
$sql = "SELECT * FROM feedback WHERE name LIKE '%{$keyword}%' LIMIT {$offset}, {$pagesize}";
}else{
$sql = "SELECT * FROM feedback WHERE 1 LIMIT {$offset}, {$pagesize}";
}
$result = mysqli_query($mysqli, $sql);
$lists = array();
$list = '';
while($rows = mysqli_fetch_array($result)){
$list .= "<li>姓名:". $rows['name']." 联系方式:". $rows['contact']." 内容:".$rows['content']."</li>";
}
echo $list;
exit;
page.php
🎜rrreee🎜Summary🎜🎜이 섹션은 초보자에게 상대적으로 어렵고 배운 지식 포인트는 이전에 배운 내용을 요약한 것입니다. 시작하기 전에 아이디어를 명확히 하고 단계별로 구현해야 합니다. 🎜생각하는 것이 매우 중요하다는 점을 기억하십시오. 학습만으로는 충분하지 않으며 다른 비슷한 요구 사항이 있을 때 숙달할 수 있어야 합니다. 🎜드디어 코딩을 시작할 시간입니다! ~🎜

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











php7.0에서 mongo 확장을 설치하는 방법: 1. mongodb 사용자 그룹 및 사용자를 생성합니다. 2. mongodb 소스 코드 패키지를 다운로드하고 소스 코드 패키지를 "/usr/local/src/" 디렉터리에 넣습니다. "src/" 디렉터리를 입력합니다. 4. 소스 코드 패키지의 압축을 풉니다. 5. mongodb 파일 디렉터리를 생성합니다. 6. "mongodb/" 디렉터리에 파일을 복사합니다. 7. mongodb 구성 파일을 생성하고 구성을 수정합니다.

php5에서는 fsockopen() 함수를 사용하여 TCP 포트를 감지할 수 있습니다. 이 기능은 네트워크 연결을 열고 일부 네트워크 통신을 수행하는 데 사용할 수 있습니다. 그러나 php7에서는 fsockopen() 함수에 포트를 열 수 없거나 서버에 연결할 수 없는 등의 몇 가지 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해, 우리는 소켓_create() 함수와 소켓_연결() 함수를 사용하여 TCP 포트를 감지할 수 있습니다.

PHP 7.0에서 설치된 플러그인이 표시되지 않는 문제를 해결하려면: 플러그인 구성을 확인하고 플러그인을 활성화하세요. 구성 변경 사항을 적용하려면 PHP를 다시 시작하세요. 플러그인 파일 권한이 올바른지 확인하세요. 플러그인이 올바르게 작동하도록 하려면 누락된 종속성을 설치하세요. 다른 모든 단계가 실패하면 PHP를 다시 빌드하세요. 다른 가능한 원인으로는 호환되지 않는 플러그인 버전, 잘못된 버전 로드 또는 PHP 구성 문제 등이 있습니다.

PHP 서버 환경에 대한 일반적인 솔루션에는 올바른 PHP 버전이 설치되어 있는지, 관련 파일이 모듈 디렉터리에 복사되었는지 확인하는 것이 포함됩니다. SELinux를 일시적으로 또는 영구적으로 비활성화합니다. 필요한 확장이 추가되고 올바르게 설정되었는지 확인하려면 PHP.ini를 확인하고 구성하십시오. PHP-FPM 서비스를 시작하거나 다시 시작합니다. 해결 문제에 대해서는 DNS 설정을 확인하세요.

php7.0 설치 및 배포 방법: 1. PHP 공식 웹사이트로 이동하여 로컬 시스템에 해당하는 설치 버전을 다운로드합니다. 2. 다운로드한 zip 파일을 지정된 디렉터리에 추출합니다. 3. 명령줄 창을 열고 다음으로 이동합니다. "E:\php7" 디렉토리 "php -v" 명령을 실행하세요.

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

PHP7과 비교하여 PHP8은 성능, 새로운 기능 및 구문 개선, 유형 시스템, 오류 처리 및 확장 측면에서 몇 가지 장점과 개선 사항을 가지고 있습니다. 그러나 사용할 버전을 선택하는 것은 특정 요구 사항과 프로젝트 상황에 따라 다릅니다. 자세한 소개: 1. 성능 향상, PHP8은 코드 실행 속도를 향상시킬 수 있는 JIT(Just-in-Time) 컴파일러를 도입합니다. 2. 새로운 기능 및 구문 개선, PHP8은 명명된 매개 변수 및 선택적 매개 변수 선언을 지원합니다. 함수 만들기 호출이 더 유연해졌습니다. 익명 클래스, 속성 유형 선언 등이 도입되었습니다.
