使用xml或excel数据下拉列表?

时间:2010-09-30 18:00:11

标签: javascript xml ajax flash forms

我想创建一个表单(flash或java / ajax),允许从xml文件中提取选择数据。

示例:

戒指构建器应用程序 - 用户在一个下拉列表中选择戒指设置,然后在另一个下拉列表中选择钻石。但是钻石的价格每天都会根据市场而变化,所以我们需要轻松更新这些数据 - 因此需要xml或excel文件。

如果可以链接数据会更好 - 例如选择公主方形切割钻石,然后只显示与公主切割兼容的设置,然后在选择设置后,只选择尺寸合适的钻石为设置节目。

思想?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为JSON更适合这样的任务。假设您的数据存储在数据库(而不是XML或Excel文件)中,您可以使用PHP或任何服务器端语言来返回一组对象,将它们编码为JSON字符串并将此信息传递给Flash或JS。解码Flash(或Javascript)中的JSON字符串将返回要在客户端管理的对象集。

这些对象基本上就是您的菜单可以查询的数据集。

实际上,当用户启动您的应用程序时,您只需要一次服务器调用即可获得所有必需的数据,然后这些数据就可以成为该特定会话的数据集。您的数据库当然可以根据需要随时更新。

至于数据对象的一般结构,请尝试将数据分开关注,我建议避免将事物捆绑在一起,以保持应用程序的灵活性。您可能从一开始就没有提出最佳结构,所以您要在菜单布局中进行更改,例如,您仍然可以重复使用大部分代码。

//A basic example of DataObject that could store the values retrieved from the XML
public class DataObject
{
    public var gemTypes:Array = ["Diamond" , "Ruby" , etc...]
    public var cutTypes:Array = ['Princess' , 'Emerald', etc...]
}

//A couple of classes you could use to structure your menu
public class AbstractGem
{
   protected var _cutType:String;
   protected var _settings:Object;
   protected var _sizes:Array;

}
public class Diamond extends AbstractGem
{
}

public class Main
{
   public function Main()
   {
      //if a menu calls the princess cut diamond, you can use the properties
      //set from the XML to determine what submenus will be called
      var princess:AbstractGem = new Diamond();
      princess.sizes = [1.5 , 1.8 , 2.0 , ......, 8.0];
      princess.cutType = "Princess"
   }
}