ThinkPHP ialah rangka kerja pembangunan PHP sumber terbuka yang menyediakan sokongan corak MVC yang berkuasa, membolehkan pembangun membangunkan aplikasi Web yang mantap dengan cepat. Apabila membangunkan aplikasi web, lompatan halaman sering diperlukan. Contohnya, selepas pengguna berjaya log masuk, dia perlu melompat ke antara muka pengguna. Artikel ini akan memperkenalkan cara menggunakan ThinkPHP untuk melompat ke halaman dan merangkum fungsi halaman lompat.
1. Gunakan ThinkPHP untuk lompat halaman
ThinkPHP menyediakan dua fungsi terbina dalam untuk lompat halaman:
fungsi redirect() digunakan untuk melompat ke alamat URL yang ditentukan. Sintaksnya adalah seperti berikut:
redirect('url', '参数', '状态码')->send();
di mana:
Sebagai contoh, untuk melompat ke halaman http://www.example.com/user/index, kodnya adalah seperti berikut:
redirect('http://www.example.com/user/index')->send();
fungsi kejayaan() dan ralat() digunakan untuk memaparkan mesej gesaan apabila halaman melompat. Maklumat gesaan kejayaan menggunakan fungsi success() dan maklumat gesaan kegagalan menggunakan fungsi ralat(). Sintaks mereka adalah seperti berikut:
success('提示信息', '跳转URL', '等待时间')->send(); error('提示信息', '跳转URL', '等待时间')->send();
Antaranya:
Sebagai contoh, untuk memaparkan mesej kejayaan dan melompat ke halaman http://www.example.com/user/index, kodnya adalah seperti berikut:
success('登录成功', 'http://www.example.com/user/index')->send();
2 . Lompatan Enkapsulasi Fungsi pemindahan halaman
Untuk memudahkan penggunaan semula, kami boleh merangkum lompatan halaman. Berikut ialah kod fungsi halaman lompat mudah:
/** * 跳转页函数 * * @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; }
Menggunakan fungsi enkapsulasi di atas, kod berikut boleh dilaksanakan dalam pengawal:
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(); }
Di atas menggunakan ThinkPHP untuk melompat ke halaman dan merangkumkan lompatan Tutorial pada fungsi mengubah halaman. Gunakan fungsi pembungkus untuk menggunakannya semula dengan mudah dalam pengawal yang berbeza.
Atas ialah kandungan terperinci tutorial pengkapsulan halaman lompat thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!