2009-05-06 104 views
1

我正在嘗試將數據發送回服務器並獲取數據集。我回來的是整個頁面的HTML 它沒有開始在我的控制器中的行動。是的 - JQuery仍然讓我感到困惑。

我目前擁有的代碼是:

function updateNavIndex(pageIndex) { 
    var filters = $("form").serialize(); 
    var productGroup = $("#valProductGroup").attr('title'); 
    var productType = $("#valProductType").attr('title'); 
    var itemsPerPage = $("#ItemsPerPage").val(); 

    $.ajax({ path: "/CatalogAjaxController/UpdateNavigation" 
      , type: "POST" 
      , data: "{ productGroup: " + productGroup + ", productType: " + productType + ", itemsPerPage: " + itemsPerPage + ", pageIndex: " + pageIndex + ", filters: " + filters + "}" 
      , success: function(data) { handleMenuData(data); } 
    }); 
    $.ajax({ path: "/CatalogAjaxController/UpdateProducts" 
      , type: "POST" 
      , data: "{ productGroup: " + productGroup + ", productType: " + productType + ", itemsPerPage: " + itemsPerPage + ", pageIndex: " + pageIndex + ", filters: " + filters + "}" 
      , success: function(data) { handleProductData(data); } 
    }); 
} 

回調函數跳閘和函數的定義是這樣的:

function handleMenuData(data) { 
    $("#navigation ul").remove(); 
    } 

此時的「數據」變量在頁面HTML它。 (就像我說的,Action沒有觸發。)我想我不應該直接調用$ ajax函數,而是使用var函數定義。例如:

var retrieveMenuData = function(path, productGroup, productType, itemsPerPage, pageIndex, filter, fnHandleCallback) { 
    $.ajax(path 
      , type 
      , { productGroup: productGroup, productType: productType, itemsPerPage: itemsPerPage, pageIndex: pageIndex, filter: filter } 
      , function(data) { fnHandleCallback(data); }); 
}; 

我不確定是否正確定義了它,或者如何正確調用它。任何幫助表示讚賞!

回答

2

也,你在那裏得到了一些奇怪的報價。對於data:語法更像是這樣的:

$.ajax({ 
    type: "POST", 
    url: "bin/login.php", 
    data:{data1: var1,data2: var2}, 
    success: function(data) { 
     } 
    }); 
+1

啊,好點...在javascript中引用JSON並沒有多大意義...... JSON畢竟是Javscript對象表示法。 – Powerlord 2009-05-06 16:55:53