
jsoncallback php 没有采用任何框架,只是使用了smarty模版,来渲染后端php响应的数据,在一个html文件中有如下实现
缘由:为了更好的体验组件优良的协程Mysql客户端,实现更好的并发设计;写了一个小程序。
环境准备:
没有采用任何框架,只是使用了模版,来渲染后端php响应的数据,在一个html文件中有如下实现
<html lang="en">
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta http-equiv="Access-Control-Allow-Origin" content="*" />
<meta name="author"
content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Jekyll v3.8.5">
老板控制台
<link rel="canonical"
href="https://v4ing.bootcss.com/docs/4.3/examples/dashboard/">
<link href="http://staticsrc.cn:8888/bootstrap.css" rel="stylesheet">
......省略若干html代码
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-4">
<div
class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3">
<h2 01class="h2">添加新订单项目<span id="hintword">
<div class="btn-toolbar mb-2 mb-md-0">
<div class="btn-group mr-2">
<button type="button" class="btn btn-sm btn-outline-secondary">Share
<button type="button" class="btn btn-sm btn-outline-secondary">Export
<button type=
"button"
class=
"btn btn-sm btn-outline-secondary dropdown-toggle">
<span data-feather=
"calendar">
This week
<div
class=
"row">
<div
class=
"col-md-4 mb-3">
<label
for=
"item">项目编码(字母)
<input type=
"text" class=
"form-control" id=
"colname" placeholder=
"" value=
"" required>
<div
class=
"invalid-feedback">
Valid first name is required.
<div
class=
"col-md-4 mb-3">
<label
for=
"colname">项目名称(中文描述)
<input type=
"text" class=
"form-control" id=
"comment" placeholder=
"" value=
"" required>
<div
class=
"invalid-feedback">
Valid last name is required.
<div
class=
"row">
<div
class=
"col-md-4 mb-3">
<label
for=
"comment">明细分类
<
select class=
"custom-select d-block w-100" id=
"mxname" required>
<option value=
"incomedoc_mx">明细
<option value=
"incomedoc">表头
</
select>
<div
class=
"invalid-feedback">
Please select a valid country.
<div class="col-md-4 mb-3">
<label for="mxbz">分类标记
<select class="custom-select d-block w-100" id="mxbz" required>
<option value="s">明细从表
<option value="m">明细主表
<option value="h">表头
</select>
<div class="invalid-feedback">
Please provide a valid state.
<div class="row">
<div class="col-md-8 mb-3">
<label for="state">
<button class="btn btn-primary btn-lg btn-block" onclick="postclick();" type="button">提交
<!-- <canvas class="my-4 w-100" id="myChart" width="900" height="380">
-->
<script src="http://staticsrc.cn:8888/jquery-3.4.1.min.js">
<script src="../../jsconfig.js">
function postclick() {
$.getJSON("http://127.0.0.1:9501?jsoncallback=?", function(data) {
$('#hintword').html(data);
});
}

原计划点击提交按钮后,由函数()将请求提交给一.php文件处理,这个php文件逻辑实现大致如下(伪代码):
<?php
go(function(){
//'若干逻辑实现.......'
echo $request->get['jsoncallback']
//'若干逻辑实现.......'
});
?>
但是jsoncallback php 没有采用任何框架,只是使用了smarty模版,来渲染后端php响应的数据,在一个html文件中有如下实现,非常不幸…….浏览器端接连提示500错误jsoncallback phpjsoncallback php,但php文件单独执行,并没报错,看来库无法通过这种常规的技术手段简单的嵌入html代码
受到一个小"骚"友的启发,(他用SwooleHttpServer实现了mysql的连接池),可我渴求成功的欲火难耐,于是准备试试SwooleHttpServer包裹Mysql客户端协程的处理方案
<?php
require('../../../config.php');
use SwooleCoroutine as co;
//echo $_POST['colname'];
$result='';
$http = new SwooleHttpServer("http://ryanbackdb.com", 9501);
$http->on('request', function ($request, $response) {
//var_dump($request);
$response->header('Access-Control-Allow-Origin', '*');#这行尤其重要,服务器必须允许跨域访问
$response->header('Content-Type', 'application/json');
$jsoncallback = htmlspecialchars($request->get['jsoncallback']);#获取jquery跨域路由中jsoncallback的部分
go(function () use($response,$jsoncallback){#逻辑部分可以根据实际业务需要编写
$json_data = '["customername1","customername2"]';
//$response->write($_callback."(".$data.")");
$response->write($jsoncallback . "(" . $json_data . ")");#返回处理后的结果
$response->end();
});
});
$http->start();

写好后就运行了,没错,这样一来jsoncallback php 没有采用任何框架,只是使用了smarty模版,来渲染后端php响应的数据,在一个html文件中有如下实现,在9501端口上就运行了一个http服务器,我们根据实际需求可以继续丰富功能,例如根据路由的不同,编写不同的协程完成不同的功能,当然,这样一来就违反了同源策略jsoncallback php,需要跨域处理

<?php
$http = new SwooleHttpServer("127.0.0.1",9501);
$http->on('request',function ($request,$response){
$params = $request->get;
var_dump($params);
$response->header('Access-Control-Allow-Origin', '*');
$jsoncallbacks = htmlspecialchars($request->get['jsonpCallback']);
echo "这里是回调函数的名字";
var_dump($jsoncallbacks);
go(function () use($jsoncallbacks,$response){
$json_data = '["customername1","customername2"]';
$response->write($jsoncallbacks . "(" . $json_data . ")");
$response->end();
});
});
$http->start();
?>
function postclick()
{
$.ajax({
method:"POST",
url:"http://127.0.0.1:9501/",
data:{'colname':$("#colname").val(),'comment':$("#comment").val(),'mxname':$("#mxname").val(),'mxbz':$("#mxbz").val()},//好像不支持formdata,浏览器控制台,后端日志不报错,但是后台程序无法获取提交的数据
dataType: "jsonp",
jsonp: "jsonpCallback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonpCallback: "duwa",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
success:data =>{
console.log("这里的data乃是回调函数的名字: "+data)
},
error:error =>{
console.log(`error为${error.data}`)
}
})
}
公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299
资源库 - 资源分享下载网 »
jsoncallback php 没有采用任何框架,只是使用了smarty模版,来渲染后端php响应的数据,在一个html文件中有如下实现
常见问题FAQ
- 关于资源售价和售后服务的说明?
- 本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
- 代码有没有售后服务和技术支持?
- 由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
- 有没有搭建服务?
- 由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
- 链接地址失效了怎么办?
- 请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
- 关于解压密码
- 本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。
资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源
关于我们
联系我们