1

我和 FLEX 合作了一段时间,我有一些“状态”声明。对于那些不确定我的意思的人来说,这就像您可以翻译几个不同的页面,设置当前状态。
现在想开始Facebook开发,不知道怎么在我用html创建的页面之间传递。我想这可能使用 javascript 而不是 php,但我不确定如何。有人可以帮帮我吗?

我想做的一个方案是:

              tigger1  
State A-------------------->State B

              trigger2      
State B-------------------->State C

以下示例显示了一个具有 2 种状态的登录面板:default,用于显示登录表单,以及Register用于显示用于注册的表单。当前状态更改由操作触发(在本例中,按下Linkbutton)。主要是状态做什么,是根据用户在每个状态下应该能够做什么来显示适当的内容。因此,例如,如果我想做一个付款表单,在用户尝试付款后,如果付款成功完成,我将有一个“Thank_you”状态,而如果付款失败,我将有一个“Try_again”状态“ 状态。如何使用 php/js 做到这一点?

登录/注册面板的代码示例(来自 adobe flex 网站,也可以在链接中找到运行示例和完整代码):

<!-- The Application class states property defines the view states.-->
<s:states>
    <s:State name="default"/>    
    <s:State name="Register"/>
</s:states>

<!-- Set title of the Panel container based on the view state.-->
<s:Panel id="loginPanel" 
    title="Login" title.Register="Register">     

    <s:Form id="loginForm">
        <s:FormItem label="Username:">
            <s:TextInput/>
        </s:FormItem>
        <s:FormItem label="Password:">
            <s:TextInput/>
        </s:FormItem>


        <s:FormItem id="confirm" label="Confirm:" includeIn="Register">
            <!-- Add a TextInput control to the form ONLY for the Register view state. -->           
            <s:TextInput/>
        </s:FormItem>            

        <s:FormItem>            
            <!-- Use the LinkButton to change view state.-->
                <!-- Set label of the control based on the view state.-->
                <mx:LinkButton id="registerLink"
                    label="Need to Register?" 
                    label.Register="Return to Login"
                    click="currentState="Register"
                    click.Register="currentState="default"/>
                <s:Button id="loginButton" 
                    label="Login" label.Register="Register"/>
        </s:FormItem>            
    </s:Form>
</s:Panel>

提前致谢

4

1 回答 1

1

对,我想我明白你的问题了。Flex(或 Flash)与正在进行的变量(或状态)一起工作,因为它是一个长时间运行的程序,由来自用户界面的事件控制。

Web 编程不是这样的。每个页面都是单独提供的,来自一个仅在该请求期间存在的程序,因此必须通过使用 cookie 在客户端维护状态。由于服务器经常需要了解用户状态,cookie(如果设置了)由浏览器自动提供给服务器,服务器可以将 cookie 的值与该用户之前所做的事情交叉引用。

如果 cookie 值是唯一的,它可以用于交叉引用会话存储,这是一组仅供一个用户使用的值。PHP 在其$_SESSION特性中提供了这一点。这本身就是一个很大的话题,所以我建议在网络上搜索“PHP 会话示例”——这里和网络上——并使用一些代码。真实的例子将向您展示这一切是如何运作的。

编辑:原来状态(变量)和状态(UI变体)是不同的东西!有关更多详细信息,请参阅评论。

于 2013-03-04T20:33:32.247 回答