thinkphp使用smarty模板调用ajax传值的问题

用thinkphp做项目时遇到了这样的问题,自己使用的是smarty模板(要在thinkphp中使用smarty模板:在配置文件../ThinkPHP/Conf/convention.php中加上这句代码'TMPL_ENGINE_TYPE' => 'Smarty'),没有使用thinkphp内置的模板引擎。但是问题就出现在这里,代码如下:

 

  1. //验证用户登录  
  2. $(function(){  
  3. $('.us_Submit').click(function(){  
  4.     var username = $('#username').val();  
  5.     var password = $('#password').val();  
  6.     $.post('__APP__/User/chkuser',  
  7.         {username : username,  
  8.         password : password},  
  9.         function(data,textStatus){  
  10.         alert(data.status);  
  11.         if(data.status == 1){  
  12.             alert(data.info);  
  13.             window.location.href = '__APP__';  
  14.         }else  
  15.             alert(data.info);  
  16.         },'json'  
  17.     );  
  18. });  
  19. });  

注意代码中红色的代码,问题的关键,,这样传值后出现了致命的错误:

解决的办法有以下几个:

一、jquery进行ajax传值时可以使用$('#form').serialize()序列方法传值来避免上述错误;

二、使用jquery中的$.ajax()方法,它是$.post()和$.get()方法原生的方法;

三、把上面红色代码的部分不用映射方式而改用字符串的方式,比如:'username='+username+'&password='+password


但是问题还是没有根本性解决,没有解决怎么使smarty模板引擎兼容上面代码的问题,希望请高人指教,小弟不胜感激!!!

 今天终于知道出现问题的原因:在于

  1. {username : username,  
  2.         password : password}

 在大括号之后没有空格,被smarty模板解析了,所以才产生错误。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章