我正在开发一个严重依赖jQuery进行用户交互的应用程序.
(如果你的浏览器不支持jQuery,那么升级或不使用我的应用程序:)
在我的应用程序中,我在没有页面重新加载的情况下获取并设置了大量信息.为此,我主要使用jQuery.post.
jQuery.post("mypath/jquery_getset_data.PHP",{ instance: 'getItems_A',itemID: itemID_value},function(data) {
populateItemList(data);
});
jquery_getset_data.PHP包含许多if语句:
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中动态调用不同的“删除项”功能?见更新1.
更新1:
这是我用来创建许多不同列表的代码.
function createStoreList(data)
{
var ul = jQuery("
更新2
我想我可以使用switch语句.我测试了它,它的工作原理.
.click(function() {
switch(instance)
{
case 'removeListItemA': removeListItemA(this); break;
case 'removeListItemA': removeListItemB(this); break;
case 'removeListItemA': removeListItemC(this); break;
}
})
最佳答案
为了减少jquery_getset_data.PHP,我将使用OOP设计模式来避免switch和if语句.
class ICommand
{
public:
function execute( );
};
class CommandGetItemA
{
public:
function execute( )
{
//do some staff here
};
};
然后:
CommandsMap['getItemA'] = new CommandGetItemA( );
CommandsMap['setItemA'] = new CommandGetItemB( );
....
CommandsMap[ $_POST['instance']].execute( );
我知道看起来很复杂,但我的口味看起来好多了.
关于你的第二个问题,我不确定我是否理解它,你可以添加更多解释吗?
在我看到你更新之后,我认为你可以做第二个问题:
.click(function() {
window[instance]( this);
});