博主信息
博文 56
粉丝 1
评论 0
访问量 77595
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
JSONP案例ID获取商品信息
零龙
原创
1207人浏览过

JSONP通过ID货物商品信息

- 准备环境:两个端口不一样,构成跨域请求的条件。

- 获取数据的网址:http://www.a.com 本机地址:http://www.php.com

- goods.html 通过点击事件查看商品信息(本地文件)

- goods.php 处理商品信息,返回

演示代码:goods.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>点击按钮获取商品信息</title>
  7. </head>
  8. <body>
  9. <button>查看</button>
  10. <script>
  11. function handle(data)
  12. {
  13. console.log(data);
  14. var ul = document.createElement("ul");
  15. var obj = JSON.parse(data);
  16. ul.innerHTML += '<li>' + obj.title + '</li>';
  17. ul.innerHTML += '<li>' + obj.goods.type + '</li>';
  18. ul.innerHTML += '<li>' + obj.goods.goodname + '</li>';
  19. ul.innerHTML += '<li>' + obj.goods.price + '</li>';
  20. document.body.appendChild(ul);
  21. }
  22. var but =document.querySelector("button");
  23. but.addEventListener("click",function()
  24. {
  25. var script = document.createElement("script");
  26. script.src = "http://www.a.com/goods.php?id=2&jsonp=handle";
  27. document.head.appendChild(script);
  28. });
  29. </script>
  30. </body>
  31. </html>

演示代码:goods.php

  1. <?php
  2. header("Content-type:text/html;charset=utf-8");
  3. //设置默认字符集
  4. $id = $_GET['id'];
  5. $callback = $_GET['jsonp'];
  6. $goodss = [
  7. '{"type":"大家电","goodsname":"电视机","price":"3200"}',
  8. '{"type":"通讯设备","goodsname":"小米10 pro","price":"6800"}',
  9. '{"type":"通讯设备","goodsname":"苹果12 pro","price":"13200"}',
  10. '{"type":"办公设备","goodsname":"联想Thinkpad","price":"6200"}',
  11. '{"type":"家居","goodsname":"罗莱家纺","price":"530"}'
  12. ];
  13. //由于传入ID的值从1开始,通过$id-1才能得到查询的正确id
  14. if(array_key_exists(($id-1),$goodss))
  15. {
  16. //查询$goods中键值等于$id的商品。
  17. $goods = $goodss[$id-1];
  18. }
  19. // $json = '{}'; 定义josn格式
  20. $json = '{
  21. "title":"商品信息",
  22. "goods": '. $goods .'
  23. }';
  24. //返回handle函数
  25. $jsons = json_encode($json);
  26. echo $callback.'('. $jsons .')';

示例图:


事件代理的案例

示例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>事件代理</title>
  7. </head>
  8. <ul>
  9. <li>1111</li>
  10. <li>2222</li>
  11. <li>3333</li>
  12. <li>4444</li>
  13. <li>5555</li>
  14. </ul>
  15. <body>
  16. <script>
  17. var ul = document.querySelector("ul");
  18. ul.addEventListener("click",function(ev)
  19. {
  20. var lis = ev.target;
  21. if(lis.tagName.toLowerCase()=='li')
  22. {
  23. lis.style.background="red";
  24. }
  25. });
  26. ul.addEventListener("mouseout",function(ev)
  27. {
  28. ev.target.style.background = "";
  29. });
  30. </script>
  31. </body>
  32. </html>

示例图:

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学