Ajax与PHP实现商品名称重复检查
需积分: 12 199 浏览量
更新于2024-09-11
收藏 805B TXT 举报
该资源是关于使用Ajax技术与PHP后台交互,实现商品名称的重复性检查功能。
在电商网站中,商品的唯一性是非常重要的,避免用户添加已存在的商品是必要的。这个示例展示了如何利用Ajax实时检测用户输入的商品名称是否已经在数据库中存在。Ajax是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术,这可以提供更好的用户体验,因为用户无需等待页面重新加载。
首先,我们来看前端部分。在JavaScript中,我们监听`input`元素(商品名称输入框)的`blur`事件,即当用户失去焦点时触发的事件。当用户离开输入框时,代码会执行以下操作:
```javascript
$("input[name=g_name]").blur(function(){
$.getJSON('http://www.ijyong.com/shop/index.php?act=store_goods_add&op=check_name&goods_name=' + $("input[name=g_name]").val(), function(result){
if(result.state){
alert('aa'); // 商品名称未重复,提示用户
}else{
alert('bb'); // 商品名称已存在,提示用户
}
});
});
```
这段代码使用jQuery库中的`$.getJSON`函数发起一个异步的GET请求,向服务器发送商品名称。URL中包含了操作(`act`)和方法(`op`)参数,以及商品名称(`goods_name`)。当服务器返回结果后,`result.state`将决定显示哪个警告消息:如果`state`为`true`,则商品名称未被占用;反之,如果`state`为`false`,则表示商品名称已存在于系统中。
接下来,我们看PHP后台的部分,具体是在`store_goods_add.php`文件中定义的`check_name`操作:
```php
public function check_nameOp() {
$goods_name = trim($_GET['goods_name']); // 获取商品名称
$m_model = Model('goods'); // 实例化商品模型
$goods_info = $m_model->getGoodsCommonInfo(array('goods_name' => $goods_name)); // 查询商品信息
if ($goods_info) {
echo json_encode(array('state' => true)); // 如果查询结果存在,返回true
} else {
echo json_encode(array('state' => false)); // 否则,返回false
}
}
```
在PHP中,`check_nameOp`方法接收商品名称,然后通过商品模型查询是否存在相同名称的商品。如果有记录返回,则将`state`设置为`true`并通过`json_encode`函数发送回前端;若没有记录,`state`设为`false`并同样以JSON格式返回。这样,前端就能根据返回的`state`值,给出相应的用户反馈。
总结来说,这个功能的核心是通过Ajax实时验证商品名称的唯一性,提供了一个简洁有效的用户体验,同时减轻了服务器的负担,避免了不必要的页面刷新。
173 浏览量
131 浏览量
2018-01-15 上传
2021-05-26 上传
111 浏览量
2019-08-29 上传
184 浏览量
BaiduPHP
- 粉丝: 60
最新资源
- Oracle数据库深度探索:体系结构与编程艺术
- 日语计算机词汇解析
- 理解JavaScript基础与HTML DOM操作
- 英语六级翻译核心词组与句子
- UNICODE:统一字符编码的全球解决方案
- 正则表达式详解:匹配与操作
- Together初学者指南:从零创建项目
- 《330 Java Tips》:汇集众多编程智慧
- 2005年中国系统分析员年第1期:软件开发模型比较与项目管理探讨
- 2008年4月四级计算机考试试卷回顾:数据库与SQL Server知识点梳理
- 配置Nokia Kjava开发环境指南
- 软件测试全解析:黑盒、白盒、灰盒及更多
- 基于CTT的通用试题库管理系统开发
- 精通Linux:从新手到高手的进阶教程
- C语言实现队列数据结构与源码详解
- 智能火灾报警系统:无线远程监控技术探索