dm / ajaxcom
控制PHP中的Ajax
v1.6.2
2017-09-27 05:35 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: 3.7.x-dev
This package is auto-updated.
Last update: 2024-08-26 21:49:19 UTC
README
AjaxCom
AjaxCom是一个PHP库,允许开发者使用最小化的JavaScript在PHP中编写Ajax代码。
演示
特性
- 向元素追加HTML
- 在元素前添加HTML
- 用新的HTML替换元素
- 设置元素的HTML
- 设置元素的值
- 显示闪存消息
- 显示模态框
- 更改URL
- 调用函数
要求
- PHP >= 5.3.3
- jQuery >= 1.7.x
安装
通过composer
{ "require": { "dm/ajaxcom": "dev-master" } }
用法
JavaScript
包含位于src/DM/AjaxCom/Resources/public/js/ajaxcom.js
的javascript库
拦截所有锚点的点击事件和表单的提交事件
$(document).ajaxcom();
或者只拦截具有data-ajaxcom
的元素
$(document).ajaxcom('[data-ajaxcom]');
PHP
use DM\AjaxCom\Handler; if (isset($_SERVER['X-AjaxCom'])) { // Render page using AjaxCom library $handler = new Handler(); // Change URL to /newurl $handler->changeUrl('/newurl'); // Append some html to an element $handler->container('#table') ->append('<tr><td>This is a new row</td></tr>'); // Replace element with some new html $handler->container('#something') ->replaceWith('<span id="somethingnew">Some text</span>'); // Display modal $handler->modal( '<div class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Modal header</h3> </div> <div class="modal-body"> <p>One fine body.</p> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> <button class="btn btn-primary">Save changes</button> </div> </div>' ); // NOTE: It is important to call callback() AFTER container() or modal() // when you are manipulating the rendered DOM inside the callback; // otherwise the callback will be called before elements of DOM are loaded // Call funcname() $handler->callback('funcname'); // Call namespace.funcname() $handler->callback('namespace.funcname'); // You can also specify parameters which will be passed as object to the funcion $handler->callback('namespace.funcname', ['this' => 'will', 'be' => 'passed', 'as' => 'an object', 'to' => 'the function']); header('Content-type: application/json'); echo json_encode($handler->respond()); } else { // Render page normally }