Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie das Laden von Paging-Daten in WeChat-Miniprogrammen mit PHP

So implementieren Sie das Laden von Paging-Daten in WeChat-Miniprogrammen mit PHP

PHPz
PHPzOriginal
2023-06-03 16:00:051281Durchsuche

Mit der Popularität von WeChat-Miniprogrammen beginnen immer mehr Entwickler, sich zu engagieren. Eine der häufigsten Anforderungen ist das Laden paginierter Daten.

Bei der Implementierung des Ladens von Paging-Daten im WeChat-Applet können wir PHP als Back-End-Sprache verwenden, die MySQL-Datenbank zum Speichern von Daten verwenden und die vom WeChat-Applet bereitgestellte Schnittstelle verwenden, um die Datenerfassung zu erreichen und Anzeige.

Im Folgenden wird detailliert beschrieben, wie PHP zum Implementieren des Paging-Datenladens von WeChat-Miniprogrammen verwendet wird.

  1. Vorbereitung

Bevor wir mit dem Schreiben von Code beginnen, müssen wir die folgenden Tools und Materialien vorbereiten:

    # 🎜🎜# WeChat Miniprogramm-Entwicklungstool, das zum Erstellen von Miniprogrammprojekten sowie zum Durchführen von Seitendesign und anderen Vorgängen verwendet wird.
  • Die PHP-Entwicklungsumgebung kann mithilfe einer integrierten Umgebung wie XAMPP oder auf einem Linux-System erstellt werden.
  • Eine MySQL-Datenbank und erstellen Sie darin entsprechende Datentabellen.
    Datentabelle erstellen
Erstellen Sie eine Datentabelle in der MySQL-Datenbank, um Daten zu speichern, die im Paging angezeigt werden müssen. Die Struktur der Datentabelle sollte die Datenfelder enthalten, die angezeigt werden müssen, sowie einige zusätzliche Felder für Paging-Vorgänge.

Wenn wir beispielsweise eine Produktliste anzeigen möchten, kann die Struktur der Datentabelle wie folgt aussehen:

CREATE TABLE `goods` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  `description` text NOT NULL,
  `image` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

In der obigen Datentabelle der Das Feld id ist ein automatisch ansteigender Primärschlüssel, name speichert den Produktnamen, price speichert den Produktpreis, description speichert die Produktbeschreibung, image speichert Produktbildadressen, created_at und updated_at werden verwendet, um die Erstellungszeit bzw. Aktualisierungszeit der Daten aufzuzeichnen.

    id字段为自增长主键,name存储商品名称,price存储商品价格,description存储商品描述,image存储商品图片地址,created_atupdated_at分别用于记录数据的创建时间和更新时间。
    1. 编写PHP代码

    接下来,我们需要编写PHP代码,用于处理微信小程序的数据请求,并将数据分页返回。

    在PHP代码中,我们需要首先进行参数校验,获取小程序前端传递的参数。一般而言,小程序需要传递两个参数:当前页码和每页显示的记录数。

    <?php
    if (!isset($_GET['page'])) {
        die('参数错误:缺少page参数');
    }
    if (!isset($_GET['pagesize'])) {
        die('参数错误:缺少pagesize参数');
    }
    
    $page = max(intval($_GET['page']), 1);
    $pageSize = intval($_GET['pagesize']);

    在上述代码中,我们使用intval()函数将字符串类型的参数转换为整数类型,并使用max()函数确保页码不会小于1。如果参数缺失或者格式错误,程序将会返回错误提示并结束执行。

    接下来,我们需要使用MySQL数据库查询语句来获取数据,并按照页码和每页显示的记录数进行分页处理。

    $offset = ($page - 1) * $pageSize;
    $sql = 'SELECT * FROM goods ORDER BY created_at DESC LIMIT ' . $offset . ',' . $pageSize;
    $result = $pdo->query($sql);
    $goods = $result->fetchAll(PDO::FETCH_ASSOC);

    在上述代码中,我们使用LIMIT关键字限制查询结果的返回数量,其中$offset变量表示当前页的起始位置,$pageSize表示每页显示的记录数。

    接下来,我们需要将查询到的结果转换为JSON格式,并返回给小程序前端。

    header('Content-Type: application/json');
    die(json_encode([
        'errno' => 0,
        'errmsg' => '',
        'data' => [
            'list' => $goods,
            'page' => $page,
            'pagesize' => $pageSize,
            'total' => $total,
        ],
    ]));

    在上述代码中,我们使用了json_encode()函数将数据转换为JSON格式,并通过header()函数设置响应头的Content-Type,确保小程序前端可以正常解析返回的数据。

    1. 小程序前端代码

    最后,我们需要在小程序前端代码中调用PHP接口,获取分页数据。一般而言,我们可以使用wx.request()函数来发起网络请求,并将获取到的数据渲染到页面中。

    Page({
      data: {
        goodsList: [],
        page: 1,
        pagesize: 10,
        total: 0,
      },
      onLoad: function () {
        this.loadGoodsList();
      },
      loadGoodsList: function () {
        wx.showLoading({
          title: '加载中',
        });
        wx.request({
          url: 'http://your.site.com/api/goods.php',
          data: {
            page: this.data.page,
            pagesize: this.data.pagesize,
          },
          success: (res) => {
            wx.hideLoading();
            const list = res.data.data.list || [];
            const page = res.data.data.page || 1;
            const pagesize = res.data.data.pagesize || 10;
            const total = res.data.data.total || 0;
            this.setData({
              goodsList: [...this.data.goodsList, ...list],
              page,
              pagesize,
              total,
            });
          },
          fail: (res) => {
            wx.hideLoading();
            wx.showToast({
              title: res.errmsg || '请求失败',
              icon: 'none',
            });
          },
        });
      },
      loadMoreGoods: function () {
        if (this.data.goodsList.length >= this.data.total) {
          return;
        }
        this.setData({
          page: this.data.page + 1,
        });
        this.loadGoodsList();
      },
    });

    在上述代码中,我们定义了一个loadMoreGoods()函数,用于加载更多的数据。在该函数中,我们通过比较当前列表中展示的记录数和总记录数来判断是否需要继续加载更多数据。

    当用户上拉列表时,我们调用loadMoreGoods()PHP-Code schreiben

    1. Als nächstes müssen wir PHP-Code schreiben, um die Datenanforderung des WeChat-Applets zu verarbeiten. Und Gibt die Daten in Seiten zurück.
    Im PHP-Code müssen wir zunächst eine Parameterüberprüfung durchführen, um die vom Frontend des Miniprogramms übergebenen Parameter zu erhalten. Im Allgemeinen muss das Applet zwei Parameter übergeben: die aktuelle Seitennummer und die Anzahl der auf jeder Seite angezeigten Datensätze.

    rrreee

    Im obigen Code verwenden wir die Funktion intval(), um den String-Typ-Parameter in einen Ganzzahltyp zu konvertieren, und verwenden max() Die Funktion stellt sicher, dass die Seitenzahl nicht kleiner als 1 ist. Wenn die Parameter fehlen oder im falschen Format vorliegen, gibt das Programm eine Fehlermeldung zurück und beendet die Ausführung.

    Als nächstes müssen wir die MySQL-Datenbankabfrageanweisung verwenden, um die Daten abzurufen, und eine Paging-Verarbeitung entsprechend der Seitenzahl und der Anzahl der auf jeder Seite angezeigten Datensätze durchführen. #🎜🎜#rrreee#🎜🎜#Im obigen Code verwenden wir das Schlüsselwort LIMIT, um die Anzahl der zurückgegebenen Abfrageergebnisse zu begrenzen, wobei die Variable $offset den Anfang darstellt der aktuellen Seitenposition, $pageSize gibt die Anzahl der auf jeder Seite angezeigten Datensätze an. #🎜🎜##🎜🎜#Als nächstes müssen wir die Abfrageergebnisse in das JSON-Format konvertieren und an das Frontend des Miniprogramms zurückgeben. #🎜🎜#rrreee#🎜🎜#Im obigen Code verwenden wir die Funktion json_encode(), um die Daten in das JSON-Format zu konvertieren, und legen die Antwort über den header() fest. Code> Funktion Der Inhaltstyp des Headers stellt sicher, dass das Miniprogramm-Frontend die zurückgegebenen Daten normal analysieren kann. #🎜🎜#<ol start="4">#🎜🎜#Miniprogramm-Frontend-Code#🎜🎜##🎜🎜##🎜🎜#Zuletzt müssen wir die PHP-Schnittstelle im Miniprogramm-Frontend aufrufen Code zum Abrufen von Paging-Daten. Im Allgemeinen können wir die Funktion <code>wx.request() verwenden, um eine Netzwerkanfrage zu initiieren und die erhaltenen Daten auf der Seite darzustellen. #🎜🎜#rrreee#🎜🎜#Im obigen Code definieren wir eine loadMoreGoods()-Funktion, um mehr Daten zu laden. In dieser Funktion bestimmen wir, ob wir weitere Daten laden müssen, indem wir die Anzahl der in der aktuellen Liste angezeigten Datensätze mit der Gesamtzahl der Datensätze vergleichen. #🎜🎜##🎜🎜#Wenn der Benutzer die Liste aufruft, rufen wir die Funktion loadMoreGoods() auf, um die Daten auf der nächsten Seite abzurufen, nachdem wir die neu erhaltenen Daten mit den bereits angezeigten Daten verbunden haben , Seitendaten aktualisieren. #🎜🎜##🎜🎜##🎜🎜#Zusammenfassung#🎜🎜##🎜🎜##🎜🎜#Durch die oben genannten Schritte haben wir die Funktion zum Laden von Paging-Daten des WeChat-Applets mit PHP erfolgreich implementiert. Durch die Einführung des oben genannten Codes und der oben genannten Prinzipien sollten Sie nun die Methode zum Implementieren des Seitenladens beherrschen. #🎜🎜##🎜🎜# Natürlich ist dies nur die grundlegendste Verwendung. Tatsächlich müssen wir bei der tatsächlichen Entwicklung auch auf einige Details achten, wie z. B. die Optimierung des Daten-Caching, der Seitenwiedergabe usw. Ich hoffe, dass der obige Inhalt Ihnen bei der Entwicklung Ihres WeChat-Applets helfen kann. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Laden von Paging-Daten in WeChat-Miniprogrammen mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn