用thinkphp做項目時遇到了這樣的問題,自己使用的是smarty模板(要在thinkphp中使用smarty模板:在配置文件../ThinkPHP/Conf/convention.php中加上這句代碼'TMPL_ENGINE_TYPE' => 'Smarty'),沒有使用thinkphp內置的模板引擎。但是問題就出現在這裏,代碼如下:
- //驗證用戶登錄
- $(function(){
- $('.us_Submit').click(function(){
- var username = $('#username').val();
- var password = $('#password').val();
- $.post('__APP__/User/chkuser',
- {username : username,
- password : password},
- function(data,textStatus){
- alert(data.status);
- if(data.status == 1){
- alert(data.info);
- window.location.href = '__APP__';
- }else
- alert(data.info);
- },'json'
- );
- });
- });
注意代碼中紅色的代碼,問題的關鍵,,這樣傳值後出現了致命的錯誤:
解決的辦法有以下幾個:
一、jquery進行ajax傳值時可以使用$('#form').serialize()序列方法傳值來避免上述錯誤;
二、使用jquery中的$.ajax()方法,它是$.post()和$.get()方法原生的方法;
三、把上面紅色代碼的部分不用映射方式而改用字符串的方式,比如:'username='+username+'&password='+password
但是問題還是沒有根本性解決,沒有解決怎麼使smarty模板引擎兼容上面代碼的問題,希望請高人指教,小弟不勝感激!!!
今天終於知道出現問題的原因:在於
- {username : username,
- password : password}
在大括號之後沒有空格,被smarty模板解析了,所以才產生錯誤。