Maison > cadre php > PensezPHP > le corps du texte

tutoriel d'encapsulation de page de saut thinkphp

王林
Libérer: 2023-05-29 11:10:38
original
520 Les gens l'ont consulté

ThinkPHP est un framework de développement PHP open source qui fournit une prise en charge puissante des modèles MVC, permettant aux développeurs de développer rapidement des applications Web robustes. Lors du développement d'applications Web, des sauts de page sont souvent nécessaires. Par exemple, une fois qu'un utilisateur s'est connecté avec succès, il doit accéder à l'interface utilisateur. Cet article explique comment utiliser ThinkPHP pour accéder aux pages et encapsuler une fonction de saut de page.

1. Utilisez ThinkPHP pour les sauts de page

ThinkPHP fournit deux fonctions intégrées pour les sauts de page :

  1. fonction redirect()

la fonction redirect() est utilisée pour accéder à l'adresse URL spécifiée. Sa syntaxe est la suivante :

redirect('url', '参数', '状态码')->send();
Copier après la connexion

Où :

  • url : L'adresse URL à rediriger.
  • Paramètres : paramètres de la méthode GET, qui peuvent être des tableaux ou des chaînes.
  • Code d'état : code d'état HTTP, tel que 302 pour la redirection et 301 pour la redirection permanente.

Par exemple, pour accéder à la page http://www.example.com/user/index, le code est le suivant :

redirect('http://www.example.com/user/index')->send();
Copier après la connexion
  1. fonctions success() et error()

success() et Fonctions error() Utilisées pour afficher un message d'invite lorsque la page saute. Les informations d'invite de réussite utilisent la fonction success() et les informations d'invite d'échec utilisent la fonction error(). Leur syntaxe est la suivante :

success('提示信息', '跳转URL', '等待时间')->send();
error('提示信息', '跳转URL', '等待时间')->send();
Copier après la connexion

Parmi eux :

  • Prompt information : l'information à afficher, qui peut être une chaîne ou un tableau.
  • URL de saut : l'adresse URL vers laquelle accéder, peut être omise.
  • Temps d'attente : temps d'attente en secondes, la valeur par défaut est de 1 seconde et peut être omise.

Par exemple, pour afficher un message de réussite et accéder à la page http://www.example.com/user/index, le code est le suivant :

success('登录成功', 'http://www.example.com/user/index')->send();
Copier après la connexion

2. Encapsulez la fonction de saut de page

Dans l'ordre pour faciliter la réutilisation, nous pouvons encapsuler les sauts de page. Ce qui suit est un simple code de fonction de page de saut :

/**
 * 跳转页函数
 *
 * @param string $url 要跳转的URL地址
 * @param string $message 信息提示
 * @param int $waitTime 等待时间
 * @return void
 */
function jump($url, $message = '', $waitTime = 1) {
    if (empty($url)) {
        exit('错误:未指定跳转URL地址!');
    }
    if (!empty($message)) {
        $message = htmlspecialchars($message);
    }
    if ($waitTime == 0) {
        header("Location: {$url}");
        exit;
    }
    $css = <<<EOF
    <style type="text/css">
    .jump {
        text-align:center;
        padding-top:5%;
        font-family: 'Microsoft Yahei', Verdana, Arial;
        font-size:16px;
    }
    .jump h3 {
        font-size:24px;
        font-weight:bold;
    }
    </style>
EOF;
    $html = <<<EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>跳转提示</title>
{$css}
</head>
<body>
    <div class="jump">
        <h3>跳转提示</h3>
        <p>{$message}</p>
        <p>等待时间:<span id="wait_time">{$waitTime}</span>秒</p>
        <p><a href="{$url}">立即跳转</a></p>
    </div>
    <script type="text/javascript">
        var wait_time = {$waitTime};
        var interval = setInterval(function(){
            if(wait_time > 0) {
                wait_time--;
                document.getElementById('wait_time').innerHTML = wait_time;
            } else {
                clearInterval(interval);
                window.location.href = '{$url}';
            }
        }, 1000);
    </script>
</body>
</html>
EOF;
    echo $html;
}
Copier après la connexion

En utilisant la fonction d'encapsulation ci-dessus, vous pouvez implémenter le code suivant dans le contrôleur :

public function login() {
    if($this->request->post()){
        $data = $this->request->post();
        // 验证码验证

        $user = UserModel::where('username', $data['username'])->find();
        if(!$user || $user->password != $data['password']){
            jump(url('login/index'), '用户名或密码错误', 3);
        } else {
            jump(url('user/index'), '登录成功', 3);
        }
    }
    return $this->fetch();
}
Copier après la connexion

Ce qui précède est un didacticiel sur l'utilisation de ThinkPHP pour accéder à la page et encapsuler la page de saut. fonction. Utilisez les fonctions wrapper pour les réutiliser facilement dans différents contrôleurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal