Thinkphp学习日记:jQuery_ajax数据提交

最近在玩Thinkphp,废话不多说,说正事.

客户端js提交代码

1 $.post(‘http://localhost/app/index.php/Index/Index/handle‘,{username : document.getElementById(‘username‘).value,content : document.getElementById(‘content‘).value,},function (data){console.log(data);alert(‘ok‘);});

主要是提交两个表单项的内容到handle,如果成功返回就执行function函数弹出一个ok

ps:这段代码不是标准的jQuery的写法,标准的应该是

$( ‘input[name=username]‘ ).val()

$( ‘#username‘ ).val()

服务器端脚本

 1     public function handle(){
 2         if (!isAJAX) {
 3             halt(‘请求有误‘);
 4
 5          } //else
 6          // //echo ‘请求成功‘;
 7       //   // var_dump(I(‘post.‘));
 8         $wi=M(‘wish‘);
 9         $data[‘wi_name‘]=I(‘username‘);
10         $data[‘wi_content‘]=I(‘content‘);
11         $data[‘wi_time‘]=time();
12         $result=$wi->data($data)->add();
13         // var_dump($result);
14         if ($result) {
15             // $this->success(‘插入成功‘);
16             // $this->ajaxReturn(‘110‘,‘插入成功‘,1);
17             $dataReturn[‘status‘]=1;
18             $dataReturn[‘info‘]=‘the post is ok‘;
19             $this->ajaxReturn($dataReturn,‘json‘);
20         }else{
21             halt(‘插入失败‘);
22         }
23
24     }

但是数据提交成功,一直没有弹窗,也就是回调函数一直没有执行.找了半天,以为是json格式有问题,才知道是我注释的那段代码

  //else
    // //echo ‘请求成功‘;
     //   // var_dump(I(‘post.‘));

本来是为了更友好的提示,估计是把这个当成了返回值,然后因为客户端解析出问题,所以没有反应,把它注释掉就行了。ps:今天又研究了下,发现应该是Thinkphp将echo的内容返回给了前端,而因为echo的内容不符合jQuery的格式,所以不能正常解析所以我把echo的内容换成 echo "{ info : ‘1213‘, name : ‘4442‘}";然后,页面终于有反应了,用console.log(data),打印后内容是{ info : ‘1213‘, name : ‘4442‘},不过不能识别是json格式

好吧,又发现新原因了,不是之前想的,如果后台用echo或者其他输出的话,Thinkphp会将它传到前台,当做这个Ajax请求的返回值,But如果你在后来再来一个$this->ajaxReturn($dataReturn,‘json‘);,就会出错,不执行

Thinkphp学习日记:jQuery_ajax数据提交

时间: 2024-11-08 05:14:21

Thinkphp学习日记:jQuery_ajax数据提交的相关文章

ThinkPHP 学习笔记 ( 五 ) 数据验证

根据官网的教程 ( http://www.thinkphp.cn/info/171.html ),数据验证的使用静态定义方式 ( 以 regex 为例 ) 无法验证数据: 而采用动态验证则正常: 控制器: <?php class IndexAction extends Action { public function add(){ $articleObj = D("Article"); $rules = array( array('title','require','请填写标题'

Thinkphp学习日记:关联模型

Thinkphp(3.2.3版本)可以完成数据表的关联CURD操作,目前支持的关联关系包括HAS_ONE,BELONG_TO,HAS_MANY,MANY_TO_MANY; 以HAS_ONE为例: HAS_ONE关联表示当前模型拥有一个子对象,例如,每个员工都有一个人事档案.我们可以建立一个用户模型UserModel,并且添加如下关联定义: <?php namespace Home\Model; use Think\Model\RelationModel; class UserModel exte

thinkphp学习笔记4—眼花缭乱的配置

1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展配置>动态配置,所以后面的配置权限要大于前面的,因为后面的配置会覆盖前面同名配置,同事会生辰配置缓存文件无需重复解析,减小开销. 惯例配置:在惯例配置内对大多数常用参数进行默认配置,因为惯例配置最先加载,优先级别最低,如果不需要做特殊配置的话,完全可以保持默认值,惯例配置位于ThinkPHP/Conf/convention.php,内容摘抄如下: &l

WCF学习日记

图书馆借阅了<WCF高级编程>,从6.11开始学习wcf,希望尽快熟悉原理和编程模型以及常用编程方法. WCF是一个平台,也是一个框架,从Net.3.0 就在Net framework(无需安装) .WCF将服务以SOA架构对外使用.SOA的宗旨就是让应用程序成为一个接口可以供其余程序使用.比如图书订单管理系统,订单履约系统,ship系统,会计系统,以及其它系统,每个都是一个独立的系统,但是彼此系统应该作为接口供别人使用,这样即使扩展了服务或者改善了服务也不会影响原先的体系架构和业务规则. W

学习日记-----各种问题

用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的UI部分,负责使用者与整个系统的交互.  优点:  分工明确,条理清晰,易于调试,而且具有可扩展性. 缺点:  增加成本. 分层式结构究竟其优势何在? 1.开发人员可以只关注整个结构中的其中某一

ThinkPHP学习笔记 事务处理

事务处理是数据库数据处理中经常用到的一个功能,特别是商务之类的应用,比如a给b打了钱,数据库中a的钱数应该减少,b的钱数应该增加, 若a数据操作成功,而b的数据因某些原因操作失败,这时数据就会有问题.这种相关的系列操作需要进行事务处理. 事务是DBMS得执行单位.一般来说,事务是必须满足4个条件(ACID): 1.  原子性(Autmic):        事务在执行性,要做到"要么不做,要么全做!",不允许事务部分执行. 2.  一致性(Consistency): 事务得操作应该使使

thinkphp学习笔记3—项目编译和调试模式

原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并缓存,第二次运行时直接载入编译缓存,这样省去一些IO开销,加快执行速度.并且在3.0以上的版本中海做了一些优化: 1.合并和兴编译缓存和项目编译缓存,不再生成两个缓存文件 2.直接对本地环境生成设置和常量定义减少环境判断 3.编译缓存可以直接替换框架入口甚至项目入口,甚至脱离框架独立运行 4.通过参

【ThinkPHP学习】ThinkPHP自动转义存储富文本编辑器内容导致读取出错

RT. ThinkPHP的conf文件中的Convention.php有一个配置选项 'DEFAULT_FILTER' => 'htmlspecialchars', // 默认参数过滤方法 用于I函数... 默认这个方法是开启的.也就是说,我们往数据库里面存储的数据中都会经过htmlspecialchars这个函数的转义处理. 我在我的项目中使用了Kindeditor富文本编辑器(或许你使用的是Ueditor\ckeditor),通过富文本编辑器编辑文章的内容然后存储到数据库中,再从数据库中读取

学习日记之职责链模式和Effective C++

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这个对象连成一条链,并沿着该条链传递该请求,直到有一个对象处理它为止. (1),当客户提交一个请求时,请求时沿着链传递直到有一个 ConcreteHandler 对象负责处理它. (2),接收者和发送者都没有对方的明确信息,切链中的对象自己也不知道链的结构.结果是职责链可简化为对象之间的连接,它们仅需保留一个指向其后继者的引用.而不惜保留它所有的候选接收者的引用