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模板解析了,所以才產生錯誤。

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