thinkphp中通过AJAX的一个URL问题

wboebnwoeinwoen 2013-08-26 05:15:44
一个商城系统:选择每个商品颜色显示相应的库存数量

jquery:

$('span[class="colors"]').on('click', function() {
var colorID = $(this).attr('id');

// 给选择的颜色添加红边框以便提醒客户
// border:1px solid red;
$('span[id="'+colorID+'"]').css('border', '1px solid red')
.siblings().css('border', '0 none');
$.post('selectColors', { colorID: colorID }, function(result) {
alert(result);
}, 'json');
//$('#color').val(colorID); // hidden
});


ProductsAction.class.php:

/**
* 选择商品颜色以显示相应存货数量
*
*/
public function selectColors() {
// 通过AJAX返回相应颜色的商品存货数量
if ($this->isAjax()) {
$colorID = Input::getVar($_POST['colorID']); // color的colorID
$proID = Input::getVar($_GET['id']); // 当前商品 id

$count = M('ColorsCount')->where('proID = '.$proID.' and colorID = '.$colorID)->limit('1')->getField('count');
if ($count) {
$this->ajaxReturn($count, '', 1);
} else {
$this->ajaxReturn(0, '', 0);
}
}
}


我的当前页面路径是:http://192.168.255.128/jewel/index.php/Products/detail/id/23.html(因为我的开发环境是centos,而最后的.html因为我在thinkphp的配置文件中设置了结尾是.html)

但我用firebug看传过去的ajax是:
POST http://192.168.255.128/jewel/index.php/Products/detail/id/selectColors 200 OK 40ms

而且结果是这样的:
(这是Post)
(这是响应)(为什么会这样?)

我想应该就是这个AJAX的路径问题吧??那应该怎么去改呢?
...全文
2842 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
natici 2013-10-11
  • 打赏
  • 举报
回复
怀疑是tp内部错误而返回错误页面。
xuyanlu 2013-10-11
  • 打赏
  • 举报
回复
是不是直接display整个页面了!而不是抛出你定义的值
natici 2013-10-11
  • 打赏
  • 举报
回复
alert(result);改为console.log(result); 再看看控制台
冰糖-雪梨 2013-10-08
  • 打赏
  • 举报
回复

用 post地址用 U()吧  U("Products/selectColors"); 这会生成一个连接地址
ajaxReturn 表示没用过
一般就直接 echo json_encode(array(
  'count'=>1,
  'state'=>1,
));
wzb0712 2013-10-07
  • 打赏
  • 举报
回复
很明显地址不对
www_7di_net 2013-08-29
  • 打赏
  • 举报
回复
如果你有提前 OB_start() 的話,這段代碼稍作修改即可,如下:
public function selectColors() {
	// 通过AJAX返回相应颜色的商品存货数量
	if ($this->isAjax()) {
		OB_clean();
		$colorID = Input::getVar($_POST['colorID']);    // color的colorID
		$proID      = Input::getVar($_GET['id']);            // 当前商品 id
		 
		$count = M('ColorsCount')->where('proID = '.$proID.' and colorID = '.$colorID)->limit('1')->getField('count');
		if ($count) {
			$this->ajaxReturn($count, '', 1);
		} else {
			$this->ajaxReturn(0, '', 0);
		}
		Die();
	}
}
wboebnwoeinwoen 2013-08-27
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
AJAX 的响应程序只应返回被请求的数据 而你确返回了整个页面 如果那些 html 代码不是你发出的,请检查 ajax 模式是否开启
对啊。。。为什么会返回整个页面?是不是firebug那里看的那个路径的问题??那应该怎么去改呢?? ajax已经开启了。我其他地方都可以的
xuzuning 2013-08-27
  • 打赏
  • 举报
回复
AJAX 的响应程序只应返回被请求的数据 而你确返回了整个页面 如果那些 html 代码不是你发出的,请检查 ajax 模式是否开启
深圳phper 2013-08-27
  • 打赏
  • 举报
回复
if ($count) { $this->ajaxReturn($count, '', 1); } else { $this->ajaxReturn(0, '', 0); } 直接改为: if ($count) { echo $count; } else { echo 0; }
wboebnwoeinwoen 2013-08-27
  • 打赏
  • 举报
回复
引用 3 楼 yulongshuai 的回复:
个人觉得TP的ajaxReturn不怎么好用
但其他功能都行的喔。。。我之前做了注册和登录的验证都OK的
432345 2013-08-27
  • 打赏
  • 举报
回复
个人觉得TP的ajaxReturn不怎么好用
目 录 第1章 ThinkPHP入门 1 1.1MVC模式概述 1 1.2ThinkPHP是什么 2 1.3 搭建PHP开发环境 2 1.3.1获取UPUPW 2 1.3.2安装UPUPW 3 1.3.3目录结构说明 4 1.3.4添加虚拟主机 4 1.3.5安装集成开发环境PHPStorm 6 1.4 个ThinkPHP程序 7 1.5 应用结构说明 8 1.5.1目录说明 8 1.5.2入口文件 8 1.5.3自动生成 9 1.5.4模块 9 1.5.5控制器 9 1.6 术语解释 1.7 小结 11 第2章 配 置 12 2.1 配置类型 13 2.1.1默认配置 13 2.1.2公共配置 13 2.1.3模式配置 13 2.1.4调试配置 14 2.1.5场景配置 14 2.1.6模块配置 14 2.1.7扩展配置 14 2.1.8动态配置 15 2.2 配置操作 15 2.2.1C函数 16 2.2.2读取配置 17 2.2.3加载扩展配置 19 2.2.4写入配置 20 2.3 小结 23 第3章 路 由 24 3.1URL的三种模式 24 3.1.1动态URL 24 3.1.2静态URL 25 3.1.3伪静态URL 25 3.2ThinkPHP的路由 25 3.2.1路由模式 25 3.2.2路由配置 29 3.3 小结 34 第4章 控制器 35 4.1 控制器的定义 35 4.2 前置操作和后置操作 37 4.3 动作参数绑定 38 4.4 伪静态 40 4.5URL大小写 40 4.6URL生成 41 4.6.1地址表达式 41 4.6.2参数 41 4.6.3伪静态后缀 41 4.6.4URL模式处理 41 4.6.5生成路由地址 42 4.7Ajax返回 42 4.8 重定向和页面跳转 43 4.8.1重定向 43 4.8.2页面跳转 44 4.9HTTP请求方法 46 4.读取输入 48 4.11空操作 50 4.12空控制器 51 4.13小结 52 第5章 模 型 53 5.1 准备工作 53 5.2 模型定义 54 5.3 模型实例化 54 5.3.1new实例化 54 5.3.2M函数实例化 55 5.3.3D函数实例化 55 5.3.4空模型实例化 55 5.4 连贯操作 55 5.4.1where 56 5.4.2table 57 5.4.3alias 57 5.4.4data 58 5.4.5field 58 5.4.6order 59 5.4.7limit 60 5.4.8page 61 5.4.9group 61 5.4.having 61 5.4.11join 61 5.4.12union 62 5.4.13distinct 62 5.4.14lock 62 5.4.15cache 63 5.4.16fetchSql 63 5.4.17strict 64 5.4.18index 64 5.5CURD操作 64 5.5.1创建数据 64 5.5.2插入数据 65 5.5.3读取数据 65 5.5.4更新数据 66 5.5.5删除数据 67 5.6 查询语言 68 5.6.1查询方式 68 5.6.2表达式查询 68 5.6.3快捷查询 70 5.6.4区间查询 71 5.6.5统计查询 71 5.7 自动验证 72 5.8 自动完成 78 5.9 视图模型 82 5.关联模型 85 5..1HAS_ONE 85 5..2BELONGS_TO 88 5..3HAS_MANY 89 5..4MANY_TO_MANY 90 5.11小结 91 第6章 视 图 92 6.1 模板定义 92 6.2 模板主题 92 6.3 模板赋值 93 6.4 模板渲染 93 6.5 总结 94 第7章 模 板 95 7.1 变量输出 95 7.1.1输出形式 95 7.1.2测试 96 7.2 系统变量 98 7.2.1语法形式 98 7.2.2配置输出 98 7.2.3测试 98 7.3 函数 0 7.3.1函数类型 0 7.3.2测试 0 7.4 变量默认值 1 7.4.1语法形式 1 7.4.2测试 2 7.5 算术运算符 3 7.5.1语法形式 3 7.5.2测试 3 7.6 模板继承 5 7.6.1语法形式 5 7.6.2测试 6 7.7 视图含 7 7.7.1语法形式 7 7.7.2模板表达式 7 7.7.3模板文件 7 7.7.4测试 7 7.8 内置标签 8 7.8.1volist标签 9 7.8.2foreach标签 1 7.8.3for标签 1 7.8.4switch标签 111 7.8.5比较标签 111 7.8.6empty标签 114 7.8.7defined标签 114 7.8.8标签嵌套 114 7.8.9import标签 115 7.8.使用原生PHP 115 7.8.11不解析输出 115 7.9 模板布局 116 7.模板常量替换 116 7.11模板注释 117 7.12测试 118 7.13总结 126 第8章 调 试 127 8.1 调试模式 127 8.2 异常处理 127 8.3 日志 128 8.3.1日志级别 129 8.3.2记录方式 129 8.3.3写入日志 129 8.4 变量输出 130 8.5 执行统计 130 8.6SQL输出 131 8.7 测试 131 8.7.1异常测试 131 8.7.2日志测试 132 8.7.3变量输出测试 133 8.7.4执行统计测试 133 8.7.5SQL输出测试 134 8.8 总结 135 第9章 缓 存 136 9.1 数据缓存 136 9.1.1写入缓存 136 9.1.2读取缓存 136 9.1.3删除缓存 137 9.2 页面缓存 137 9.3 数据库查询缓存 138 9.4 总结 139 第章 专 题 140 .1session操作 140 .1.1session写入 140 .1.2session读取 140 .1.3session删除 140 .2cookie操作 141 .2.1cookie写入 141 .2.2cookie读取 141 .2.3读取所有cookie 141 .2.4cookie删除 141 .3分页 141 .3.1分页语法 141 .3.2测试 142 .4文件上传 145 .5验证码 146 .6图像处理 149 .6.1实例化Image 149 .6.2获取图片基本信息 149 .6.3图像裁剪 150 .6.4图像缩略图 151 .6.5水印 152 .7总结 153 第11章 留言板项目实战 154 11.1项目目的 154 11.2项目需求 154 11.3数据表设计 154 11.4模块设计 155 11.5编码实现 155 11.5.1编写模型 155 11.5.2编写留言控制器 156 11.5.3编写用户控制器 159 11.5.4编写留言列表 162 11.5.5编写留言发表页面 163 11.5.6编写用户登录界面 163 11.5.7编写用户注册页面 164 11.6运行效果 165 11.6.1留言界面 165 11.6.2用户登录 166 11.6.3登录后留言列表 166 11.6.4发表留言 166 11.6.5留言成功 166 11.6.6注册页面 167 11.7项目总结 167 第12章 系统项目实战 168 12.1项目目的 168 12.2需求分析 168 12.3功能设计 168 12.4数据库设计 169 12.5数据库字典 169 12.6模块设计 171 12.6.1Admin模块 171 12.6.2Common模块 175 12.6.3Home模块 177 12.7项目总结 182 第13章 论坛系统项目实战 183 13.1项目目的 183 13.2功能设计 183 13.3数据库设计 183 13.4数据库字典 184 13.5模块设计 186 13.5.1Common模块 186 13.5.2Admin模块 190 13.5.3Home模块 192 13.6项目总结 193 第14章 公众号开发 195 14.1项目目的 195 14.2功能设计 195 14.3开通测试公众号 196 14.4下载开发类库 197 14.5开始会话开发 197 14.5.1注册流程 199 14.5.2登录流程 200 14.5.3查看个人资料流程 200 14.5.4上传头像流程 200 14.5.5退出登录流程 200 14.5.6全局回复处理 201 14.5.7示例代码 201 14.5.8测试 212 14.6自定义菜单开发 213 14.6.1获取AccessToken 213 14.6.2创建自定义菜单 214 14.6.3响应自定义菜单 216 14.7项目总结 216 结 语 217
+------------------------------------------------------------------- | 感谢您使用ThinkPHP开发框架 ^_^ +------------------------------------------------------------------- | 大道至简 开发由我 WE CAN DO IT,JUST THINK +------------------------------------------------------------------- | 版本信息:ThinkPHP 3.1 Release 2012/9/5 +------------------------------------------------------------------- | Copyright(c) 2006-2012 http://thinkphp.cn All rights reserved. +------------------------------------------------------------------- [ 简介 ] ThinkPHP一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架, 遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而 诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性 能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在 社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,众多 的典型案例确保可以稳定用于商业以及门户级的开发。 经过6年的不断积累和重构,3.0版本在框架底层的定制和扩展方面趋于完善, 使得应用的开发范围和需求适应度更加扩大,能够满足不同程度的开发人员的 需求。而且引入了全新的CBD(核心+行为+驱动)架构模式,旨在打造DIY框架 和AOP编程体验,让ThinkPHP能够在不同方面都能快速满足项目和应用的需求, 并且正式引入SAE、REST和Mongo支持。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。当然不仅仅是企业级 应用,任何PHP应用开发都可以从ThinkPHP的简单和快速的特性受益。 ThinkPHP本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念, 用最少的代码完成更多的功能,宗旨就是让WEB应用开发更简单、更快速。 为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应 用开发的最佳实践!经过6年来的不断重构和改进,ThinkPHP达到了一个新的 阶段,能够满足企业开发复杂的项目需求,足以达到企业级和门户级的开 发标准。 [ 协议 ] ThinkPHP遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP, 甚至允许把你的ThinkPHP应用采用商业闭源发布。 具体参考LICENSE.txt内容 [ 特性 ] CBD架构:ThinkPHP3.0版本引入了全新的CBD(核心+行为+驱动)架构模式, 打造框架底层DIY定制和类AOP编程体验。利用这一新的特性,开发人员可以 方便地通过模式扩展为自己量身定制一套属于自己或者企业的开发框架。 编译机制:独创的项目编译机制,有效减少OOP开发文件加载的性能开销。 改进后的项目编译机制,可以支持编译文件直接作为入口载入,并且支持常量 外部载入,利于产品发布。 类库导入:采用基于类库包和命名空间的方式导入类库,让类库导入看起来更 加简单清晰,而且还支持自动加载和别名导入。为了方便项目的跨平台移植, 系统还可以严格检查加载文件的大小写。 URL和路由:系统支持普通模式、PATHINFO模式、REWRITE模式和兼容模式的 URL方式,支持不同的服务器和运行模式的部署,配合URL路由功能,让你随心 所欲的构建需要的URL地址和进行SEO优化工作。支持灵活的规则路由和正则路 由,以及路由重定向支持,带给开发人员更方便灵活的URL优化体验。 调试模式:框架提供的调试模式可以方便用于开发过程的不同阶段,包括开发、 测试和演示等任何需要的情况,不同的应用模式可以配置独立的项目配置文件。 只是小小的性能牺牲就能满足调试开发过程的日志和分析需要,并确保将来的 部署顺利,一旦切换到部署模式则可以迅速提升性能。 ORM :简洁轻巧的ORM实现,配合简单的CURD以及AR模式,让开发效率无处不在。 数据库:支持包括Mysql、Sqlite、Pgsql、Oracle、SqlServer、Mongo等数据库, 并且内置分布式数据库和读写分离功能支持。系统支持多数据库连接和动态切换 机制,犹如企业开发的一把利刃,跨数据库应用和分布式支持从此无忧。 查询语言:内建丰富的查询机制,包括组合查询、快捷查询、复合查询、区间 查询、统计查询、定位查询、多表查询、子查询、动态查询和原生查询,让你的 数据查询简洁高效。 动态模型:无需创建任何对应的模型类,轻松完成CURD操作,支持多种模型之间 的动态切换,让你领略数据操作的无比畅快和最佳体验。 扩展模型:提供了丰富的扩展模型,包括:支持序列化字段、文本字段、只读字 段、延迟写入、乐观锁、数据分表等高级特性的高级模型;可以轻松动态地创建 数据库视图的视图模型;支持关联操作的关联模型;支持Mongo数据库的Mongo模 型等等,都可以方便的使用。 模块分组:不用担心大项目的分工协调和部署问题,分组帮你解决跨项目的难题, 还可以支持对分组的二级域名部署支持。 模板引擎:系统内建了一款卓越的基于XML的编译型模板引擎,支持两种类型的 模板标签,融合了Smarty和JSP标签库的思想,并内置布局模板功能和标签库扩展 支持。通过驱动还可以支持Smarty、EaseTemplate、TemplateLite、Smart等其他第 三方模板引擎。 AJAX支持:内置和客户端无关的AJAX数据返回方法,支持JSON、XML和EVAL类型 返回客户端,而且可以扩展返回数据格式,系统不绑定任何AJAX类库,可随意使 用自己熟悉的AJAX类库进行操作。 SAE支持:提供了新浪SAE平台的强力支持,具备“横跨性”和“平滑性”,支持本地化 开发和调试以及部署切换,让你轻松过渡到SAE开发,打造全新的SAE开发体验。 RESTFul支持:REST模式提供了RESTFul支持,为你打造全新的URL设计和访问体验, 同时为接口应用提供了支持。 多语言支持:系统支持语言包功能,项目和分组都可以有单独的语言包,并且可以 自动检测浏览器语言自动载入对应的语言包。 模式扩展:除了标准模式外,还提供了AMF、PHPRpc、Lite、Thin和Cli模式扩展支 持,针对不同级别的应用开发提供最佳核心框架,还可以自定义模式扩展。 自动验证和完成:自动完成表单数据的验证和过滤,新版新增了IP验证和有效期验 证等更多的验证方式,配合自动完成可以生成安全的数据对象。 字段类型检测:系统会自动缓存字段信息和字段类型,支持非法字段过滤和字段类 型强制转换,确保数据写入和查询更安全。 缓存机制:系统支持包括文件方式、APC、Db、Memcache、Shmop、Sqlite、Redis、 Eaccelerator和Xcache在内的动态数据缓存类型,以及可定制的静态缓存规则,并 提供了快捷方法进行存取操作。 扩展机制:系统支持包括模式扩展、行为扩展、类库扩展、驱动扩展、模型扩展、 控制器扩展、Widget扩展在内的强大灵活的扩展机制,让你不再受限于核心的不足 和无所适从,随心DIY自己的框架和扩展应用,满足企业开发更加复杂的项目需求。 [ 要求 ] ThinkPHP3.1需要PHP5.2.0以上版本支持,可以运行在任何系统环境下面。 [ 安装 ] ThinkPHP无需安装,下载ThinkPHP核心包或者完整版之后,把解压后的目录拷贝到 你的WEB服务器或者WEB目录即可。 [ 鸣谢 ] 特别要鸣谢ThinkPHP团队和所有关注和支持ThinkPHP的用户。 [ 支持 ] 更多内容和支持请访问ThinkPHP官方网站http://thinkphp.cn/ 和论坛 http://bbs.thinkphp.cn。

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧