我正在開發一個嚴重依賴jQuery進行用戶交互的應用程序。
(如果你的瀏覽器不支持jQuery,那麼升級或不使用我的應用程序:)第1部分:jQuery - > MySQL - > jQuery - > HTML
正常情況下,有一個函數可以從表中獲取,設置和刪除數據。
在我的應用程序中,我GET'ing並設置了很多沒有頁面重新加載的信息。爲此,我主要使用jQuery.post。
在我的JS文件的典型代碼如下所示:
jQuery.post("mypath/jquery_getset_data.php", { instance: 'getItems_A', itemID: itemID_value},
function(data) {
populateItemList(data);
});
的jquery_getset_data.php包含許多如果聲明:
if($_POST['instance'] == 'getItems_A'){
// PHP code to get and process data from MySQL DB
}
if($_POST['instance'] == 'setItems_A'){
// PHP code to process and insert data to MySQL DB
}
我的問題是:
對於JS文件和jquery_getset_data.php之間的交互是否更好?
如何在createStoreList中動態調用不同的「remove item」函數?見更新1
更新1: 這是我用它來創建許多不同的列表中的代碼。
function createStoreList(data)
{
var ul = jQuery("<ul/>");
// We need to build the html structure in order for this to be registered in DOM.
// If we don't, jQuery events like .click, .change etc. will not work.
for (var i = 0; i < data.length; i++)
{
ul.append(
jQuery("<li/>")
.attr("id", "listItem_"+data[i].id)
.append(jQuery("<span/>")
.addClass("btnRemoveItem")
.attr("title", "Remove store from list")
.attr("id", data[i].id)
.click(function() { removeItemA(this); })
)
.append(data[i].name + ', ' + data[i].street)
);
}
return ul;
}
更新2 我想我只可以使用switch語句。我測試過它,它工作。
.click(function() {
switch(instance)
{
case 'removeListItemA': removeListItemA(this); break;
case 'removeListItemA': removeListItemB(this); break;
case 'removeListItemA': removeListItemC(this); break;
}
})
也許你應該發佈「幾乎相同的代碼」的例子?順便說一句,你違反了怪胎代碼,不在你的笑臉附近嵌套parens:它應該閱讀「或不使用我的應用程序:)):D:D – jrharshath 2009-06-22 10:12:58
+1」如果你的瀏覽器不支持jQuery,那麼升級或不使用我的應用程序「。 :-) – KyleFarris 2009-06-22 15:10:28