SolutionsTools & SDKSupportForums Register



Quick Links
 
Implementing Enumerated Field Values
 
 
OVERVIEW

This  WML code fragment demonstrates an alternative approach to implementing user selections.  In this example, the user selects their sex (Male | Female) and marital status (Single | Married | Divorced) by simply selecting the field and pressing the "ACCEPT" key.  The new value is automatically displayed as soon as the user selects it. 

This approach is only recommended when the enumerated values are implicit and don't need to be displayed in a separate selection card.


SOURCE CODE

Generic WML version:

<?xml version="1.0"?>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
    <wml>
    <card>
        <onevent type="onenterforward">
            <go href="#next">
                
    <setvar name="sex" value="Male"/>
                
    <setvar name="status" value="Single"/>
            </go>
        </onevent>
        <onevent type="onenterbackward">
            <prev/>
        </onevent>
    </card>
    <card id="next">
        <p mode="nowrap">You are:
            <select>
                
    <option>
                    
    <onevent type="onpick">
                        
    <go href="#$(sex:escape)"/>
                    
    </onevent>[$(sex:noesc)]
                
    </option>
                
    <option>
                    
    <onevent type="onpick">
                        
    <go href="#$(status:escape)"/>
                    
    </onevent>[$(status:noesc)]
                
    </option>
            </select>
        </p>
    </card>
    
    <card id="Male" ontimer="#next">         <onevent type="onenterforward">             <refresh>                 <setvar name="sex" value="Female"/>             </refresh>         </onevent>         <onevent type="onenterbackward">             <prev/>         </onevent>         <timer value="1"/>     </card>
    <card id="Female" ontimer="#next">         <onevent type="onenterforward">             <refresh>                 <setvar name="sex" value="Male"/>             </refresh>         </onevent>         <onevent type="onenterbackward">             <prev/>         </onevent>         <timer value="1"/>     </card>
    <card id="Single" ontimer="#next">         <onevent type="onenterforward">             <refresh>                 <setvar name="status" value="Married"/>             </refresh>         </onevent>         <onevent type="onenterbackward">             <prev/>         </onevent>         <timer value="1"/>     </card>
    <card id="Married" ontimer="#next">         <onevent type="onenterforward">             <refresh>                 <setvar name="status" value="Divorced"/>             </refresh>         </onevent>         <onevent type="onenterbackward">             <prev/>         </onevent>         <timer value="1"/>     </card>
    <card id="Divorced" ontimer="#next">         <onevent type="onenterforward">             <refresh>                 <setvar name="status" value="Single"/>             </refresh>         </onevent>         <onevent type="onenterbackward">             <prev/>         </onevent>         <timer value="1"/>     </card> </wml>
 

WML with Openwave extension version:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN"
"http://www.openwave.com/dtd/wml11.dtd" >
<wml>
    <card>
        <onevent type="onenterforward">
            <go href="#next">
                <setvar name="sex" value="Male"/>
                <setvar name="status" value="Single"/>
            </go>
        </onevent>
    </card>
    <card id="next">
        <p mode="nowrap">
        You are:
        <select>
            <option>
            <onevent type="onpick">
                <spawn href="#$(sex:escape)">
                <catch/>
                <receive/>
                <receive name="sex"/>
                </spawn>
            </onevent>[$(sex:noesc)]
            </option>
            <option>
                <onevent type="onpick">
                <spawn href="#$(status:escape)">
                <catch/>
                <receive/>
                <receive name="status"/>
                </spawn>
                </onevent>[$(status:noesc)]
            </option>
        </select>
        </p>
    </card>

    <card id="Male">
        <onevent type="onenterforward">
            <exit>
                <send value="$(next:noesc)"/>
                <send value="Female"/>
            </exit>
        </onevent>
        <onevent type="onenterbackward">
            <prev/>
        </onevent>
    </card>

    <card id="Female">
        <onevent type="onenterforward">
            <exit>
                <send value="$(next:noesc)"/>
                <send value="Male"/>
            </exit>
        </onevent>
        <onevent type="onenterbackward">
            <prev/>
        </onevent>
    </card>

    <card id="Single">
        <onevent type="onenterforward">
         <exit>
                <send value="$(next:noesc)"/>
                <send value="Married"/>
        </exit>
        </onevent>
        <onevent type="onenterbackward">
            <prev/>
        </onevent>
    </card>

    <card id="Married">
        <onevent type="onenterforward">
            <exit>
                <send value="$(next:noesc)"/>
                <send value="Divorced"/>
            </exit>
        </onevent>
        <onevent type="onenterbackward">
            <prev/>
        </onevent>
    </card>

    <card id="Divorced">
        <onevent type="onenterforward">
            <exit>
                <send value="$(next:noesc)"/>
                <send value="Single"/>
            </exit>
        </onevent>
        <onevent type="onenterbackward">
            <prev/>
        </onevent>
    </card>
</wml>
 
Copyright © 2000-2008 Openwave Systems Inc.    About Us  |  Openwave  |  Terms & Conditions  |  Privacy Policy  |  Update Profile