2013-05-21 91 views
1

我正在使用smarty模板和php。以下代碼正在使用smarty模板編寫。我的代碼有什麼錯誤?

{literal} 
<script type="text/javascript"> 
// This function gets test when category checkbox is checked 

function get_subjects_by_class(class_id) { 
    var field_id = 'subjects'; 
    $.ajax({ 
     url: "teacher_details.php", 
     type: "GET", 
     data: { 
      'request_type': 'ajax', 
      'op': 'get_assigned_subject_list', 
      'class_id': class_id 
     }, 
     success: function (data) { 
      $('#category_test_container').append(data); 
     }); 
    } 
</script> 
{/literal} 

調用此函數如下:

<a href="#" onClick="get_subjects_by_class({$class.class_id}); return false;">{$class.class_name}</a> 

在點擊超鏈接,我得到一個錯誤如下:

ReferenceError: $ is not defined 
$.ajax({ 

我GOOGLE了它的錯誤的決議,但無法達到理想的分辨率。任何人都可以幫我解決這個錯誤嗎?提前致謝。

+2

你確定你裝的jQuery插件? –

+0

這意味着jquery.js文件丟失...確保你加載了jquery腳本 – bipen

+0

首先加載jQuery,然後加載這個腳本。 – GEMI

回答

1

您要麼沒有加載jQuery,要麼在運行此腳本後加載它。這就是爲什麼$未定義。

+0

按照你的建議,我加了jQuery庫,現在是不是給這個錯誤,但給另一個錯誤「\t $(文件)。就緒(函數(){」 現在如何擺脫掉這個錯誤? – PHPLover

+0

@phpLover, (函數(){//你的代碼在這裏}或者$(document).ready(function()()函數是否存在更多的錯誤信息或者更多? –

+0

你的代碼是否在'ready'函數中? ){//你的代碼在這裏}'。 – tandrewnichols

0

您需要先包含jQuery,然後$ variable變爲可用。 $是jQuery的縮寫,所以顯然jQuery不包含在運行$ .ajax的地方。

+0

'$'也被其他庫使用,所以它不僅僅是「jQuery的簡稱」。但在這種情況下,顯然''.ajax()'是一種jQuery方法。 –

+0

感謝您指出。它顯然是jQuery在這裏,所以我把它留下:) – Alex

0

似乎jquery不包含在頁面中。請包括任何CDN

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"> 
</script> 

它可以發生由於jQuery的衝突也爲這種情況下,使用

http://api.jquery.com/jQuery.noConflict/