Ajax实现不刷新取最新商品


Posted in Javascript onMarch 01, 2017

话不多说,请看代码:

<?php 
 $conn = mysql_connect('localhost','root','123456') or die('连接失败'); 
 mysql_select_db('ecshop'); 
 mysql_query('set names utf8'); 
 $attr = isset($_GET['attr'])?$_GET['attr']:'is_hot';  //由html 的ajax提交过来 然后根据它来取数据~ 
 $sql = 'select goods_name,goods_id,shop_price from goods where '.$attr.' = 1 limit 0,3'; 
 $rs = mysql_query($sql,$conn); 
 //var_dump($rs); 
 $goods = array(); 
 while($row = mysql_fetch_assoc($rs)){ 
  $goods[] = $row; 
 } 
 //print_r($goods); 
?>
<table border='1'> //ajax 接收的就是 php输出内容 虽然它没echo 但也是输出在网页的内容 所以ajax 能接收~~!!! 
<tr><td>商品ID</td><td>商品名称</td><td>商品价格</td></tr> 
<?php foreach($goods as $v){ ?> 
 <tr> 
  <td><?php echo $v['goods_id'];?></td> 
  <td><?php echo $v['goods_name'];?></td> 
  <td><?php echo $v['shop_price'];?></td> 
 </tr> 
<?php }?> 
</table>

HTML 的内容

<script> 
 var xhr = new XMLHttpRequest(); 
 function top3(attr){ 
  var url = 'goods.php?attr=' + attr; 
  xhr.open('get',url); 
  xhr.onreadystatechange = function (){ 
   if(xhr.readyState ==4){ 
    var dobj = document.getElementsByTagName('div')[0].innerHTML = xhr.responseText; //把从php 接收的内容放入INNERHTML 
   } 
  } 
  xhr.send(); 
 } 
</script> 
</head> 
<body> 
  <input type="button" value="最新商品" onclick="top3('is_new');"> 
  <input type="button" value="热卖商品" onclick="top3('is_hot');"> 
  <input type="button" value="精品商品" onclick="top3('is_best');"> 
  <div id="test"> 
  </div> 
</body>

实例2:根据输入的ID 获取商品信息 并修改

<?php 
$conn = mysql_connect('localhost','root','123456') or die('连接失败'); 
 mysql_select_db('ecshop'); 
 mysql_query('set names utf8'); 
 $id = isset($_GET['id'])?$_GET['id']:1; 
 if($id==''){ 
  $error['num'] = 1; 
  $error['msg']; 
 } 
 $sql = 'select goods_id,goods_name,shop_price,goods_number from goods where goods_id ='.$id; 
 $rs = mysql_query($sql); 
 if(!($goods = mysql_fetch_assoc($rs))){  //获取不到商品就返回false 
  echo '没有该商品!'; 
  exit; 
 } 
 echo json_encode($goods);     //把数组转成一个json 格式~~ 
?>

HTML端的内容

<script> 
 var xhr = new XMLHttpRequest(); 
 function modify(){ 
  var inputs = document.getElementsByTagName('input') 
  var gid = inputs[0].value; 
  var url = 'search.php?id='+ gid;
  xhr.open('get',url); 
  xhr.onreadystatechange = function (){ 
   if(xhr.readyState ==4){ 
    var data = eval('('+ xhr.responseText +')') //把接收到的json 格式数据转成JS的对象! 
    inputs[1].value = data.goods_name; 
    inputs[2].value = data.goods_number; 
    inputs[3].value = data.shop_price; 
   } 
  } 
  xhr.send(null) //经常漏写了~~~不写是发送不了请求的~~一定要写! 
 } 
</script> 
</head> 
<body> 
<h1>商品编辑</h1> 
  商品id:<input type="text" name="goods_id" onfocus="al()" onblur="modify();" /><br /> <span></span> 
  商品名称:<input type="text" name="goods_name" /><br /> 
  商品库存:<input type="text" name="goods_number" /><br /> 
  商品价格:<input type="text" name="shop_price" /><br /> 
  <input type="submit" value="修改" /> 
</body>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery选择器使用详解
Apr 08 Javascript
js调试系列 断点与动态调试[基础篇]
Jun 18 Javascript
JS数组合并push与concat区别分析
Dec 17 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
Jan 16 Javascript
js replace()去除代码中空格的实例
Feb 14 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
浅谈React前后端同构防止重复渲染
Jan 05 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
jQuery中DOM操作原则实例分析
Aug 01 jQuery
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 Javascript
Angular1.x复杂指令实例详解
Mar 01 #Javascript
JS中使用 after 伪类清除浮动实例
Mar 01 #Javascript
Angular1.x自定义指令实例详解
Mar 01 #Javascript
轻松学习Javascript闭包
Mar 01 #Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 #Javascript
node.js实现回调的方法示例
Mar 01 #Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 #Javascript
You might like
十天学会php之第十天
2006/10/09 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
Python中的异常处理简明介绍
2015/04/13 Python
分析python请求数据
2018/08/19 Python
python增加图像对比度的方法
2019/07/12 Python
浅析Django中关于session的使用
2019/12/30 Python
蒂娜商店:Tiina the Store
2019/12/07 全球购物
人事专员岗位职责
2013/11/20 职场文书
劳动之星获奖感言
2014/02/01 职场文书
设备售后服务承诺书
2014/05/30 职场文书
学校周年庆活动方案
2014/08/22 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
体育教师个人总结
2015/02/09 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript