我正在开发一个严重依赖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);
});
原文地址:https://www.jb51.cc/jquery/427827.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。