- FuelPHP 教程
- FuelPHP - 主页
- FuelPHP - 简介
- FuelPHP - 安装
- FuelPHP - 架构概述
- FuelPHP - 简单的 Web 应用程序
- FuelPHP - 配置
- FuelPHP - 控制器
- FuelPHP - 路由
- FuelPHP - 请求与响应
- FuelPHP - 视图
- FuelPHP - 演讲者
- FuelPHP - 模型和数据库
- FuelPHP - 表单编程
- FuelPHP - 验证
- 高级形式编程
- FuelPHP - 文件上传
- FuelPHP-Ajax
- FuelPHP - HMVC 请求
- FuelPHP - 主题
- FuelPHP - 模块
- FuelPHP - 包
- Cookie 和会话管理
- FuelPHP - 活动
- FuelPHP - 电子邮件管理
- FuelPHP - 分析器
- 错误处理和调试
- FuelPHP - 单元测试
- 完整的工作示例
- FuelPHP 有用资源
- FuelPHP - 快速指南
- FuelPHP - 有用的资源
- FuelPHP - 讨论
FuelPHP-Ajax
AJAX 是 Web 编程中的一项现代技术。它提供了在网页中异步发送和接收数据的选项,而无需刷新页面。让我们在本章中学习 FuelPHP AJAX 编程。
FuelPHP 框架提供了识别请求类型是否为 AJAX 的选项。输入类有一个方法is_ajax()用于此目的。如果发出 AJAX 请求,Input::is_ajax方法返回true,否则返回 false。
该方法用于在服务器端正确处理 AJAX 请求。
if (Input::is_ajax()) {
// Ajax request
} else {
// Normal request
}
我们可以使用json_encode返回 JSON 响应。我们可以结合这两种方法来创建一个简单干净的基于 AJAX 的 Web 应用程序。
工作示例
让我们在员工应用程序中添加一个新页面ajax/index并尝试异步获取员工信息。
步骤1 - 在fuel/app/classes/controller/ajax.php 创建一个新的控制器Controller_Ajax。
<?php
class Controller_Ajax extends Controller {
}
步骤 2 - 创建一个新操作,action_index如下。
<?php
class Controller_Ajax extends Controller {
public function action_index() {
$emps = model_employee::find('all');
$data = array();
$i = 0;
foreach($emps as $emp) {
$data[$i] = array();
$data[$i]['name'] = $emp['name'];
$data[$i]['age'] = $emp['age'];
$i = $i + 1;
}
if(\Input::is_ajax()) {
echo json_encode($data);
} else {
return \View::forge("ajax/index");
}
}
}
在这里,如果请求是 AJAX,我们会获取学生信息,将其编码为 JSON,然后返回。否则,我们只渲染相应的视图。
步骤 3 - 创建相应的视图文件,fuel/app/views/ajax/index.php,如下所示。
<html>
<head>
<script language = "javascript" src = "/assets/js/jquery-3.2.1.min.js"></script>
<style>
.table { border-collapse: collapse; }
.table th, td {
border-bottom: 1px solid #ddd;
width: 250px;
text-align: left;
align: left;
}
</style>
</head>
<body>
<a id = "loademployee" href = "#">Load employee information</a>
</br>
</br>
<table class = "table">
<tbody id = "employee">
</tbody>
</table>
<script language = "javascript">
$(document).ready(function() {
$("#loademployee").on("click", function(event) {
$.ajax ({
url: '/ajax/index',
type: 'POST',
dataType: 'json',
async: true,
success: function(data, status) {
var e = $('<tr><th>Name</th><th>Age</th></tr>');
$('#employee').html('');
$('#employee').append(e);
for(i = 0; i < data.length; i++) {
employee = data[i];
var e = $('<tr><td id = "name"></td><td id = "age"></td></tr>');
$('#name', e).html(employee['name']);
$('#age', e).html(employee['age']);
$('#employee').append(e);
}
},
error : function(xhr, textStatus, errorThrown) {
alert('Ajax request failed.');
}
});
});
});
</script>
</body>
</html>
在这里,我们创建了一个锚标记(id:loademployee)来使用 AJAX 调用加载员工信息。AJAX 调用是使用 JQuery 完成的。当用户单击附加到 loademployee 标记的事件时,该事件就会激活。然后,它将使用 AJAX 调用获取员工信息并动态生成所需的 HTML 代码。
步骤 4 - 运行应用程序。
最后,运行应用程序http://localhost:8000/ajax/index并单击加载员工信息锚点选项卡。
结果
