웹 프론트엔드 JS 튜토리얼 데이터를 얻어 페이지에 표시하는 Ajax 메소드

데이터를 얻어 페이지에 표시하는 Ajax 메소드

May 23, 2018 pm 03:12 PM
ajax 보여주다

이제 Ajax를 통해 데이터를 얻어서 페이지에 표시하는 구현 방법을 알려드리겠습니다. 이제 그것을 여러분과 공유하고 모든 사람에게 참고 자료로 제공하겠습니다.

주요 기능 프로세스 소개

목록 데이터를 얻기 위한 루프

목록 데이터를 클릭하여 세부정보 페이지로 들어가세요

가입하려면 클릭하세요. 등록 성공 메시지가 표시됩니다. 상자가 나타납니다

프롬프트 상자를 클릭하면 목록 페이지로 돌아가려면 확인 버튼을 클릭하세요

코드 구현 과정 및 설명

1. 목록 페이지에 액세스할 때. list.php를 링크해서 PC측인지 클라이언트측인지 확인

$user_agent_arr = mall_get_user_agent_arr();
if(MALL_UA_IS_PC == 1)
{
  //****************** pc版 ******************
  include_once './list-pc.php';

}
else
{

  //****************** wap版 ******************
  include_once './list-wap.php';

}
로그인 후 복사
2.wap 버전이라면 list-wap.php 페이지로 점프해서 list.tpl.htm 페이지

$pc_wap = 'wap/';
$tpl = $my_app_pai->getView(TASK_TEMPLATES_ROOT.$pc_wap.'trade/list.tpl.htm');
로그인 후 복사

3를 로드합니다. 템플릿을 렌더링하는 list.tpl.htm 페이지

HTML

<p class="page-view " data-role="page-container">

    <p class="sales-list-page">
      <p id="render-ele"></p>
    </p>

  </p>
로그인 후 복사

JS

$(function()
  // 渲染模块
  {
    //请求php的url
    var TRADE_AJAX_URL = window.$__ajax_domain + &#39;get_trade_list.php&#39;;
    //获取已经封装在list.js里面的一个对象list_item_class
    var list_item_class = require(&#39;../../../../modules/list/list.js&#39;);
    //获取模板块
    var template = __inline(&#39;./list-item.tmpl&#39;);

    var list_obj = new list_item_class({
      ele : $("#render-ele"),//渲染数据到id为render-ele中
      url : TRADE_AJAX_URL,//请求数据连接
      template : template //渲染的模板
    });

  });
로그인 후 복사

list-item .tmpl 템플릿 콘텐츠(루프 목록 콘텐츠)

<p class="item-wrap">
  {{#each list}}
  {{#if is_enroll}}
  <a href="./detail.php?topic_id={{id}}&state=is_enter">
  {{else}}
  <a href="./detail.php?topic_id={{id}}&state=no_enter">
  {{/if}}
    <p class="item ui-border-b" >
      <p class="img-item">
        <i class="img" style="background-image: url({{img}});">

        </i>
      </p>
      <p class="text-item">
        <p class="txt-con-1">
          <h3 class="title f14">{{title}}</h3>
          <p class="txt f10 color-999">所属品类:{{type}}</p>

        </p>
        <p class="txt-con-2">
          <span class="color-333 join-in ">
            {{ enroll_text }} 
          </span>

        </p>
      </p>
    </p>
  </a>
  {{/each}}
</p>
로그인 후 복사

4 List.js는 데이터 처리를 수행합니다. 구체적인 메소드를 직접 작성해주세요.

 _self.ajax_obj = utility.ajax_request 
({
  url : self.send_url,
  data : self.ajax_params,
  beforeSend : function()
  {
self._sending = true;
_self.$loading = $.loading
({
  content:&#39;加载中...&#39;
});

  },
  success : function(data)
  {
self._sending = false;
//获取数据
var list_data = data.result_data.list;
console.log(data);
//渲染前处理事件
self.$el.trigger(&#39;list_render:before&#39;,[self.$list_container,data]);

_self.$loading.loading("hide");

//是否有分页
self.has_next_page = data.result_data.has_next_page;

// 无数据处理 
if(!list_data.length && page == 1)
{
  abnormal.render(self.$render_ele[0],{});

  self.$load_more.addClass(&#39;fn-hide&#39;);

  return;
}
else
{
  self.$load_more.removeClass(&#39;fn-hide&#39;);
}

//把数据放入模板
var html_str = self.template
({
  list : list_data
});
//插入渲染列表
self.$list_container.append(html_str);
//渲染后处理事件
self.$el.trigger(&#39;list_render:after&#39;,[self.$list_container,data,$(html_str)]);

self.setup_event();
  },
  error : function()
  {
self._sending = false;
_self.$loading.loading("hide");
$.tips
  ({
content:&#39;网络异常&#39;,
stayTime:3000,
type:&#39;warn&#39;
  });
  }
})
로그인 후 복사

5. get_trade_list.php는 프런트 엔드 페이지에서 요청을 받은 다음 데이터를 수집 및 처리하고 최종적으로 프런트 엔드 페이지에 데이터를 반환합니다.

// 接收参数
$page = intval($_INPUT[&#39;page&#39;]);



if(empty($page))
{
  $page = 1;
}

// 分页使用的page_count
$page_count = 5;

if($page > 1)
{
  $limit_start = ($page - 1)*($page_count - 1);
}
else
{
  $limit_start = ($page - 1)*$page_count;
}

$limit = "{$limit_start},{$page_count}";



//请求数据库的借口
$sales_list_obj = POCO::singleton ( &#39;pai_topic_class&#39; );
$ret = $sales_list_obj-> get_task_list(false, &#39;&#39;, &#39;id DESC&#39;, $limit);





// 输出前进行过滤最后一个数据,用于真实输出
$rel_page_count = 4;



$has_next_page = (count($ret)>$rel_page_count);

if($has_next_page)
{
  array_pop($ret);
}

$output_arr[&#39;page&#39;] = $page;

$output_arr[&#39;has_next_page&#39;] = $has_next_page;

$output_arr[&#39;list&#39;] = $ret;

// 输出数据
mall_mobile_output($output_arr,false);
로그인 후 복사

6 프런트 엔드 페이지는 반환된 데이터를 받습니다. get_trade_list.php, 데이터베이스를 판단하기 위해 내용이 첫 페이지에 표시됩니다. 템플릿 출력

$tpl->output();
로그인 후 복사

상세 페이지

1. 목록 페이지를 클릭하여 세부 정보 페이지(detail.php)로 들어갑니다detail.php 페이지가 목록에서 데이터를 받습니다

//接收list传过来的参数
$topic_id = intval($_INPUT[&#39;topic_id&#39;]);
$state = $_INPUT[&#39;state&#39;];

if (empty($topic_id)) 
{
  header("location: ".&#39;./list.php&#39;);
}

//数据库借口
$trade_detail_obj = POCO::singleton ( &#39;pai_topic_class&#39; );
$ret = $trade_detail_obj->get_task_detail($topic_id,$yue_login_id);
로그인 후 복사

2. PC 측 또는 클라이언트 측(목록 페이지와 유사)

3.detail-wap.php로 이동하여 Detail.tpl.htm 템플릿을 로드하고 매개변수도 가져옵니다.

$pc_wap = &#39;wap/&#39;;
$tpl = $my_app_pai->getView(TASK_TEMPLATES_ROOT.$pc_wap.&#39;trade/detail.tpl.htm&#39;);

//模板附带以下三个参数到detail.tpl.htm中
$tpl->assign(&#39;ret&#39;, $ret);
$tpl->assign(&#39;topic_id&#39;, $topic_id);
$tpl->assign(&#39;state&#39;, $state);
로그인 후 복사

4. object ret

<p class="sales-detail-page">
  <p class="item-wrap">
<p class="item-1 item">
  <p class="img-item">
<i class="img" >
<img src="{ret.img}"/>
</i>
  </p> 
  <p class="txt-item">
<h3 class="title f16 color-333 fb">{ret.title}</h3>
<p class="sign-in-txt color-666">
  {ret.enroll_text}
</p>
  </p>
</p>

<p class="item-3 item">
  <p class="txt-item">
<h3 class="title f14 color-333 fb">生意机会详情</h3>
<p class="txt-con f14 color-666">
  <p class="txt">{ret.content}</p>
</p>
  </p>
</p>
  </p>
  <p class="sign-name-item">
  <!-- IF state = "is_enter" -->
<button class="ui-button-submit had-joined">
  <span class="ui-button-content">已参加</span>
</button>
  <!-- ELSE -->
  <button class="ui-button-submit" id="submit">
<span class="ui-button-content">报名参加</span>
  </button>
  <!-- ENDIF -->
  </p>
</p>
로그인 후 복사

5. 가입 버튼을 클릭하세요. 데이터 처리 수행

var _self = {};
$btn.on(&#39;click&#39;, function() {
  var data = 
  {
topic_id : {ret.id}
  }
  utility.ajax_request({
url : window.$__ajax_domain+&#39;add_task_enroll_trade.php&#39;,
data : data,
type : &#39;POST&#39;,
cache : false,
beforeSend : function() 
{
  _self.$loading = $.loading({
content : &#39;发送中.....&#39;
  });
},
success : function(data) 
{
  _self.$loading.loading("hide");
  //请求成功后显示成功报名提示框,点击报名提示框确定按钮跳回列表页面
if (data.result_data.result==1) 
{
var dialog = utility.dialog
({
  "title" : &#39;&#39; ,
  "content" : &#39;提交成功,点击确定返回&#39;,
  "buttons" : ["确定"]
});
 dialog.on(&#39;confirm&#39;,function(event,args)
   {
   window.location.href = document.referrer;
   });

  return;
   }





},  
error : function() 
{
  _self.$loading.loading("hide");
  $.tips({
content : &#39;网络异常&#39;,
stayTime : 3000,
type : &#39;warn&#39;
  });
}

  });

});
로그인 후 복사

위 내용은 모두를 위해 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

Ajax 요청 및 필터 협력 사례 분석

AJAX 요청에서 배열 문제를 해결하는 방법

Ajax 캐시를 해결하는 5가지 방법 요약

위 내용은 데이터를 얻어 페이지에 표시하는 Ajax 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

jQuery AJAX 요청에서 발생한 403 오류를 해결하는 방법 jQuery AJAX 요청에서 발생한 403 오류를 해결하는 방법 Feb 20, 2024 am 10:07 AM

제목: jQuery AJAX 요청의 403 오류를 해결하는 방법 및 코드 예제 403 오류는 서버가 리소스에 대한 액세스를 금지하는 요청을 의미합니다. 이 오류는 일반적으로 요청에 권한이 없거나 서버에서 거부되기 때문에 발생합니다. jQueryAJAX 요청을 할 때 가끔 이런 상황이 발생합니다. 이 기사에서는 이 문제를 해결하는 방법을 소개하고 코드 예제를 제공합니다. 해결 방법: 권한 확인: 먼저 요청한 URL 주소가 올바른지 확인하고 리소스에 액세스할 수 있는 충분한 권한이 있는지 확인하십시오.

jQuery AJAX 요청 403 오류를 해결하는 방법 jQuery AJAX 요청 403 오류를 해결하는 방법 Feb 19, 2024 pm 05:55 PM

jQuery는 클라이언트 측 개발을 단순화하는 데 사용되는 인기 있는 JavaScript 라이브러리입니다. AJAX는 전체 웹 페이지를 다시 로드하지 않고 비동기 요청을 보내고 서버와 상호 작용하는 기술입니다. 그러나 jQuery를 사용하여 AJAX 요청을 할 때 가끔 403 오류가 발생합니다. 403 오류는 일반적으로 보안 정책이나 권한 문제로 인해 서버 거부 액세스 오류입니다. 이 기사에서는 403 오류가 발생한 jQueryAJAX 요청을 해결하는 방법에 대해 설명합니다.

데스크탑 레이아웃이 잠기는 이유와 해결 방법 데스크탑 레이아웃이 잠기는 이유와 해결 방법 Feb 19, 2024 pm 06:08 PM

데스크탑 레이아웃이 잠겨 있으면 어떻게 됩니까? 컴퓨터를 사용할 때 데스크탑 레이아웃이 잠기는 상황이 발생할 수 있습니다. 이 문제는 데스크탑 아이콘의 위치를 ​​자유롭게 조정하거나 데스크탑 배경을 변경할 수 없음을 의미합니다. 그렇다면 데스크탑 레이아웃이 잠겨 있다는 메시지가 나타나면 정확히 무슨 일이 일어나고 있는 걸까요? 1. 데스크탑 레이아웃 및 잠금 기능 이해 먼저 데스크탑 레이아웃과 데스크탑 잠금의 두 가지 개념을 이해해야 합니다. 데스크탑 레이아웃이란 바로가기, 폴더, 위젯 등 데스크탑의 다양한 요소를 배열하는 것을 말합니다. 우리는 자유로울 수 있어

Ajax를 사용하여 PHP 메소드에서 변수를 얻는 방법은 무엇입니까? Ajax를 사용하여 PHP 메소드에서 변수를 얻는 방법은 무엇입니까? Mar 09, 2024 pm 05:36 PM

Ajax를 사용하여 PHP 메소드에서 변수를 얻는 것은 웹 개발의 일반적인 시나리오입니다. Ajax를 통해 데이터를 새로 고치지 않고도 페이지를 동적으로 얻을 수 있습니다. 이 기사에서는 Ajax를 사용하여 PHP 메소드에서 변수를 가져오는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 Ajax 요청을 처리하고 필요한 변수를 반환하기 위해 PHP 파일을 작성해야 합니다. 다음은 간단한 PHP 파일 getData.php에 대한 샘플 코드입니다.

삼성은 마이크로소프트의 MR 헤드셋에 디스플레이를 제공할 예정이며, 해당 장치는 더 가볍고 선명한 디스플레이를 가질 것으로 예상됩니다. 삼성은 마이크로소프트의 MR 헤드셋에 디스플레이를 제공할 예정이며, 해당 장치는 더 가볍고 선명한 디스플레이를 가질 것으로 예상됩니다. Aug 10, 2024 pm 09:45 PM

최근 삼성디스플레이와 마이크로소프트(MS)가 중요한 협력 협약을 체결했다. 이번 협약에 따라 삼성디스플레이는 수십만 개의 혼합현실(MR) 헤드마운트 기기용 OLEDoS 패널을 개발해 마이크로소프트에 공급하게 된다. 마이크로소프트는 게임, 영화 등 멀티미디어 콘텐츠용 MR 기기를 개발할 예정이다. OLEDoS 사양이 확정된 후 출시될 예정이며, 주로 상업용 분야에 서비스를 제공할 예정이며, 이르면 2026년에 출시될 것으로 예상됩니다. OLEDoS(OLED on Silicon) 기술 OLEDoS는 실리콘 기판에 OLED를 증착하는 새로운 디스플레이 기술로, 기존 유리 기판에 비해 더 얇고 픽셀이 높습니다. OLEDoS 디스플레이와 일반 디스플레이

Wi-Fi 비밀번호 QR 코드를 표시하는 방법은 3초 안에 WeChat에서 Wi-Fi 비밀번호를 스캔하는 것이 좋습니다. Wi-Fi 비밀번호 QR 코드를 표시하는 방법은 3초 안에 WeChat에서 Wi-Fi 비밀번호를 스캔하는 것이 좋습니다. Feb 20, 2024 pm 01:42 PM

WIFI 비밀번호는 자주 입력할 필요가 없기 때문에 잊어버리는 것이 일반적입니다. 오늘은 3초 안에 완료할 수 있는 가장 간단한 WIFI 비밀번호 찾는 방법을 알려드리겠습니다. WIFI 비밀번호를 확인하려면 WeChat을 사용하여 스캔하세요. 이 방법의 전제는 WIFI에 연결할 수 있는 휴대폰이 있어야 한다는 것입니다. 자, 튜토리얼을 시작해 보겠습니다. 1단계. 전화기를 입력하고 전화기 상단을 아래로 당겨서 상태 표시줄과 WIFI 아이콘을 불러옵니다. 2단계. WIFI 아이콘을 길게 눌러 WLAN 설정으로 들어갑니다. WIFI 아이콘을 누릅니다. 3단계. 연결됨을 클릭하고 집의 WIFI 이름을 입력하고 비밀번호 공유를 클릭하면 QR 코드가 나타납니다. WIFI 비밀번호 공유 4단계, 스크린샷을 찍어 이 QR 코드를 저장합니다. , 바탕 화면의 WeChat 아이콘을 길게 누르고 스캔을 클릭하세요.

jQuery AJAX 오류 403 문제를 해결하는 방법은 무엇입니까? jQuery AJAX 오류 403 문제를 해결하는 방법은 무엇입니까? Feb 23, 2024 pm 04:27 PM

jQueryAJAX 오류 403 문제를 해결하는 방법은 무엇입니까? 웹 애플리케이션을 개발할 때 jQuery는 종종 비동기 요청을 보내는 데 사용됩니다. 그러나 때때로 jQueryAJAX를 사용할 때 서버에서 액세스가 금지되었음을 나타내는 오류 코드 403이 발생할 수 있습니다. 이는 일반적으로 서버 측 보안 설정으로 인해 발생하지만 문제를 해결하는 방법이 있습니다. 이 기사에서는 jQueryAJAX 오류 403 문제를 해결하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 만들다

Linux에서 현재 디렉토리를 확인하는 방법은 무엇입니까? Linux에서 현재 디렉토리를 확인하는 방법은 무엇입니까? Feb 23, 2024 pm 05:54 PM

Linux 시스템에서는 pwd 명령을 사용하여 현재 경로를 표시할 수 있습니다. pwd 명령은 PrintWorkingDirectory의 약어로 현재 작업 디렉터리의 경로를 표시하는 데 사용됩니다. 현재 경로를 표시하려면 터미널에 다음 명령을 입력하십시오. pwd 이 명령을 실행하면 터미널에 /home/user/Documents와 같은 현재 작업 디렉터리의 전체 경로가 표시됩니다. 또한 몇 가지 다른 옵션을 사용하여 pwd 명령의 기능을 향상할 수 있습니다. 예를 들어 -P 옵션은 다음을 표시할 수 있습니다.

See all articles