PHP12306火车票查询接口API实例

12306火车票查询 -- 作者:ShenZhongChao

出发地:

目的地:

出发时间:

车次类型:

GC-高铁/城际

D-动车

Z-直达

T-特快

K-快速

车次:

刷票频率:

查询

注意 :

1、输入出发、到达站点时,请选择下拉框中的值,否则无法查询。

2、默认查询全部车次。

3、不填写 车次 默认查询所有符合条件的车次。

4、不填写刷票频率不会进行刷票,刷票频率请填写大于 2 的数字

查询结果 -- 作者:ShenZhongChao

车次出发站
到达站出发时间
到达时间车程历时商务座
特等座一等座二等座高级软卧软卧动卧硬卧软座硬座无座其他备注

var layer;

layui.use('layer', function() {

layer = layui.layer;

});

$(function() {

$(".i-checks").iCheck({checkboxClass: "icheckbox_square-green", radioClass: "iradio_square-green", });

var fsSuggest = $("#f_s").bsSuggest({

url: "sites_data/station.json",

idField: "stationFlag",

keyField: "stationName",

//inputWarnColor: '', //输入框内容不是下拉列表选择时的警告色

showBtn: true //显示下拉

}).on("onDataRequestSuccess",

function(e, result) {

//console.log("onDataRequestSuccess: ", result)

}).on("onSetSelectValue",

function(e, keyword) {

$("#f_c").val(keyword.id);

//console.log("onSetSelectValue: ", keyword)

}).on("onUnsetSelectValue",

function(e) {

console.log("onUnsetSelectValue")

});

var tsSuggest = $("#t_s").bsSuggest({

url: "sites_data/station.json",

idField: "stationFlag",

keyField: "stationName",

//inputWarnColor: '', //输入框内容不是下拉列表选择时的警告色

showBtn: true //显示下拉

}).on("onDataRequestSuccess",

function(e, result) {

//console.log("onDataRequestSuccess: ", result)

}).on("onSetSelectValue",

function(e, keyword) {

$("#t_c").val(keyword.id);

//console.log("onSetSelectValue: ", keyword)

}).on("onUnsetSelectValue",

function(e) {

console.log("onUnsetSelectValue")

});

layui.use('laydate', function() {

var laydate = layui.laydate;

//日历定义

var start = {

min: laydate.now(),

format: "YYYY-MM-DD",

max: "2050-01-01",

istime: true,

istoday: true,

};

document.getElementById('date').onclick = function() {

start.elem = this;

laydate(start);

}

});

var id;

$("#search").click(function() {

clearInterval(id);

var f_s = $("#f_c").val();

if (f_s == '') {

layer.msg('请选择出发城市', {'time': 1000});

return false;

}

var t_s = $("#t_c").val();

if (t_s == '') {

layer.msg('请选择到达城市', {'time': 1000});

return false;

}

var date = $("#date").val();

if (date == '') {

layer.msg('请选择出发日期', {'time': 1000});

return false;

}

//指定的车次

var train = $.trim($("#train").val());

//车次类型

var train_type = [];

$('input[name="train_type"]:checked').each(function() {

train_type.push($(this).val());

});

//刷新频率

var flash = $("#flash").val();

if (flash == '') {

showData(f_s, t_s, date, train, train_type);

} else {

if (parseInt(flash) < 2) {

layer.msg('刷新频率必须大于2', {'time': 1000});

return false;

}

showData(f_s, t_s, date, train, train_type);

layer.msg('数据将' + parseInt(flash) + '秒刷新一次', {'time': 2000});

id = setInterval(function() {

showData(f_s, t_s, date, train, train_type);

}, parseInt(flash) * 1000);

}

});

});

//展示数据

function showData(f_s, t_s, date, train, train_type) {

var loading = layer.load(1, {shade: false}); //0代表加载的风格,支持0-2

$.getJSON('./ajax.php', {'f_s': f_s, 't_s': t_s, 'date': date}, function(res) {

layer.close(loading);

//console.log(res.data); //完整JSON数据,包括flag(代号标记状态)、map(站点信息)、result(余票数据)等

//console.log(res.data.result); //余票JSON数据

//console.log(res.data.map); //车站站点JSON数据

if (res.data.flag) {

var _html = '';

$.each(res.data.result, function(k, v) {

if (train != '' && train != v.station_train_no) {

return true;

}

if (train_type.length > 0 && $.inArray(v.station_train_no.substr(0, 1), train_type) < 0) {

return true;

}

//转化出发站点代号成出发站点中文、目的站点代号成目的站点中文

v.start_station = stationChange(res.data.map, v.start_station);

v.end_station = stationChange(res.data.map, v.end_station);

_html += "

" + v.station_train_no + "";

_html += "

始:" + v.start_station;

_html += "终:" + v.end_station + "

";

_html += "

" + v.start_time + "
" + v.end_time + "";

_html += "

" + v.spend_time + "
当日到达";

_html += "

" + v.swztz_num + "";

_html += "

" + v.yd_num + "";

_html += "

" + v.ed_num + "";

_html += "

" + v.gr_num + "";

_html += "

" + v.rw_num + "";

_html += "

" + v.dw_num + "";

_html += "

" + v.yw_num + "";

_html += "

" + v.rz_num + "";

_html += "

" + v.yz_num + "";

_html += "

" + v.wz_num + "";

_html += "

" + v.qt_num + "";

_html += "

" + v.bz_num + "";

});

$("#s_res").html(_html);

$("#res").html("( " + dateChange($('#date').val())/*得到的JSON数据中的日期是字符串,需要进行格式转化*/ + " ) 共计 " + $("#s_res tr").length + " 个车次");

$('.bz').click(function(){alert('未实现真正预订功能!');});

} else {

$("#s_res").empty();

$("#res").empty();

layer.msg('没有符合的数据', {'time': 1000});

}

});

}

//转化站点代号成站点中文

function stationChange(stationMap, station){

//console.log(stationMap);

//遍历检索出来的站点JSON数据

$.each(stationMap, function(k, v) {

//console.log(k+v);

if (k == null || k == '') {

layer.msg('获取站点信息失败!', {'time': 1000});

return false;

}

if (station == k) {

//console.log(v);

station = v;

}

});

return station;

}

//转化时间字符串成日期对象,再通过日期对象获取年、月、日、星期几等

function dateChange(dateStr){

// Date.parse()方法解析一个表示某个日期的字符串(如2020/01/01等),并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数

// 2020-01-01这种为不合法日期字符串,需要替换"-"变成"/"

var date = new Date(Date.parse(dateStr.replace(/-/g,"/")));

var dateStr = date.getFullYear() + '年' + (date.getMonth()+1) + '月' + date.getDate() + '日';

return dateStr;

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

php查询火车票开发实例,index.html相关推荐

  1. 2021爱智先行者—(2)零基础APP开发实例

    [本文正在参与"2021爱智先行者-征文大赛"活动],活动链接:https://bbs.csdn.net/topics/602601454 欢迎关注 『Python小白的项目实战』 ...

  2. Vue开发实例(15)之动态路由

    引言 Vue是现在前端最流行的框架之一,作为前端开发人员应该要熟练的掌握它,如果你是打算学习Vue的开发流程,那么来吧,明哥带你快速上手.带你飞! 即使你并非前端开发人员,对前端的开发流程进行一定的了 ...

  3. php 银行支付通道_PHP银联在线支付接口的开发实例

    本文主要和大家分享PHP银联在线支付接口的开发实例,希望能帮助到大家. 1. 登录银联自助化测试平台(登陆地址:open.unionpay.com),登录后,点击我的产品,如下:点击右方需要测试的接口 ...

  4. Vue开发实例(13)之axios和mockjs的安装与使用

    作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...

  5. Vue开发实例(17)之实现用户列表

    引言 Vue是现在前端最流行的框架之一,作为前端开发人员应该要熟练的掌握它,如果你是打算学习Vue的开发流程,那么来吧,明哥带你快速上手.带你飞! 即使你并非前端开发人员,对前端的开发流程进行一定的了 ...

  6. SAP之FPM卷五:FPM开发实例-完成主页面功能(1)

    系列文章目录 SAP之FPM卷一:FPM是什么 SAP之FPM卷二:FPM开发实例-创建WDA应用 SAP之FPM卷三:FPM开发实例-设想需求与优化 SAP之FPM卷四:FPM开发实例- 创建程序所 ...

  7. SAP之FPM卷四:FPM开发实例- 创建程序所需表,结构并完成搜索页面主要代码

    系列文章目录 SAP之FPM卷一:FPM是什么 SAP之FPM卷二:FPM开发实例-创建WDA应用 SAP之FPM卷三:FPM开发实例-设想需求与优化 SAP之FPM卷五:FPM开发实例-完成主页面功 ...

  8. Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例)

    Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例) 标签: 注册登录Android开发servlet 2017-04-18 20:34  454人阅读  评论(1) ...

  9. Vue开发实例(16)之创建标签页

    引言 Vue是现在前端最流行的框架之一,作为前端开发人员应该要熟练的掌握它,如果你是打算学习Vue的开发流程,那么来吧,明哥带你快速上手.带你飞! 即使你并非前端开发人员,对前端的开发流程进行一定的了 ...

最新文章

  1. Ansible基础一Playbook(二)
  2. DOM对象和内置对象(上)
  3. tcpdump抓包对性能的影响
  4. flink 自定义 窗口_【Flink 精选】阐述 Watermark 机制,剖析 Watermark 的产生和传递流程...
  5. TCP协议可靠性保证(确认应答机制,超时重传机制,流量控制,拥塞窗口)
  6. bootstrap --- 按钮
  7. 使用log4j记录日志_使用log4j2免费分配日志记录
  8. js微信小程序页面左上角返回跳转指定页面
  9. 【转】:andriod 开发环境工具下载地址(2)
  10. lambda python_Python | Lambda和filter()与示例
  11. 小程序如何调用php程序,微信小程序调用PHP后台接口 解析纯html文本
  12. floyd求最小环 模板
  13. 性能提升160%,为全球提供顶级算力:阿里云发布第三代神龙云服务器
  14. DNS服务器设置正确,DNS服务器配置(DNS各属性详细介绍)
  15. 让 Alfred 支持拼音
  16. springboot @Value无效原因
  17. 公寓宽带服务器无响应,利用RLDP协议解决网络环路故障
  18. idea修改背景颜色
  19. OSChina 周五乱弹 —— 夏日限定梦想
  20. 《算法竞赛中的初等数论》(一)正文 0x00整除、0x10 整除相关(ACM / OI / MO)(十五万字符数论书)

热门文章

  1. 记录基于STM32的独轮车测试板构建(一)电机篇
  2. java的synthetic_Java中的synthetic
  3. 欧冠比赛数据集(梅西不哭-离开巴萨也可能再创巅峰)
  4. 2007的LOGG4J学习笔记
  5. 机械革命X6ti-s安装ubuntu16.04及独显驱动配置
  6. jmeter性能测试快速入门
  7. JSP双语字典查询系统myeclipse开发sql数据库bs框架java编程web网页结构
  8. Swinghacks——JTabbedPane切换百页窗效果
  9. linux开启防火墙的命令行,Linux关闭/开启防火墙命令
  10. java基础题(实现分别输入员工数量,姓名,性别,职位,工资,年龄)