xajax的FORM例子

613 查看

复制代码 代码如下:

<?php
// signup.php
// demonstrates a simple multipage form using xajax
// and the xajax.getFormValues() function.
// using xajax version 0.1 beta4
// http://xajax.sourceforge.net
session_start();
include ("xajax.inc.php");
function processForm($aFormValues)
{
        if (array_key_exists("username",$aFormValues))
        {
                return processAccountData($aFormValues);
        }
        else if (array_key_exists("firstName",$aFormValues))
        {
                return processPersonalData($aFormValues);
        }
}
function processAccountData($aFormValues)
{
        $objResponse = new xajaxResponse();
        $bError = false;
        if (trim($aFormValues['username']) == "")
        {
                $objResponse->addAlert("Please enter a username.");
                $bError = true;
        }
        if (trim($aFormValues['newPass1']) == "")
        {
                $objResponse->addAlert("You may not have a blank password.");
                $bError = true;
        }
        if ($aFormValues['newPass1'] != $aFormValues['newPass2'])
        {
                $objResponse->addAlert("Passwords do not match.  Try again.");
                $bError = true;
        }
        if (!$bError)
        {
                $_SESSION = array();
                $_SESSION['newaccount']['username'] = trim($aFormValues['username']);
                $_SESSION['newaccount']['password'] = trim($aFormValues['newPass1']);
                $sForm = "<form id=\"signupForm\" action=\"javascript:void(null);\" onsubmit=\"submitSignup();\">";
                $sForm .="<div>First Name:</div><div><input type=\"text\" name=\"firstName\" /></div>";
                $sForm .="<div>Last Name:</div><div><input type=\"text\" name=\"lastName\" /></div>";
                $sForm .="<div>Email:</div><div><input type=\"text\" name=\"email\" /></div>";
                $sForm .="<div class=\"submitDiv\"><input id=\"submitButton\" type=\"submit\" value=\"done\"/></div>";
                $sForm .="</form>";
                $objResponse->addAssign("formDiv","innerHTML",$sForm);
                $objResponse->addAssign("formWrapper","style.backgroundColor", "rgb(67,149,97)");
                $objResponse->addAssign("outputDiv","innerHTML","\$_SESSION:<pre>".var_export($_SESSION,true)."</pre>");
        }
        else
        {
                $objResponse->addAssign("submitButton","value","continue ->");
                $objResponse->addAssign("submitButton","disabled",false);
        }
        return $objResponse->getXML();
}
function processPersonalData($aFormValues)
{
        $objResponse = new xajaxResponse();
        $bError = false;
        if (trim($aFormValues['firstName']) == "")
        {
                $objResponse->addAlert("Please enter your first name.");
                $bError = true;
        }
        if (trim($aFormValues['lastName']) == "")
        {
                $objResponse->addAlert("Please enter your last name.");
                $bError = true;
        }
        if (!eregi("^[a-zA-Z0-9]+[_a-zA-Z0-9-]*(\.[_a-z0-9-]+)*@[a-z??????0-9]+(-[a-z??????0-9]+)*(\.[a-z??????0-9-]+)*(\.[a-z]{2,4})$", $aFormValues['email']))
        {
                $objResponse->addAlert("Please enter a valid email address.");
                $bError = true;
        }
        if (!$bError)
        {
                $_SESSION['newaccount']['firstname'] = $aFormValues['firstName'];
                $_SESSION['newaccount']['lastname'] = $aFormValues['lastName'];
                $_SESSION['newaccount']['email'] = $aFormValues['email'];
                $objResponse->addAssign("formDiv","style.textAlign","center");
                $sForm = "Account created.<br />Thank you.";
                $objResponse->addAssign("formDiv","innerHTML",$sForm);
                $objResponse->addAssign("formWrapper","style.backgroundColor", "rgb(67,97,149)");
                $objResponse->addAssign("outputDiv","innerHTML","\$_SESSION:<pre>".var_export($_SESSION,true)."</pre>");
        }
        else
        {
                $objResponse->addAssign("submitButton","value","done");
                $objResponse->addAssign("submitButton","disabled",false);
        }
        return $objResponse->getXML();
}
$xajax = new xajax();
//$xajax->debugOn();
$xajax->registerFunction("processForm");
$xajax->processRequests();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
        <head>
                <?php $xajax->printJavascript(); ?>
                <style type="text/css">
                #formWrapper{
                        color: rgb(255,255,255);
                        background-color: rgb(149,67,97);
                        width: 200px;
                }
                #title{
                        text-align: center;
                        background-color: rgb(0,0,0);
                }
                #formDiv{
                        padding: 25px;
                }
                .submitDiv{
                        margin-top: 10px;
                        text-align: center;
                }
                </style>
                <script type="text/javascript">
                function submitSignup()
                {
                        xajax.$('submitButton').disabled=true;
                        xajax.$('submitButton').value="please wait...";
                        xajax_processForm(xajax.getFormValues("signupForm"));
                        return false;
                }
                </script>
        </head>
        <body>
                <div id="formWrapper">
                        <div id="title">Create a New Account</div>
                        <div id="formDiv">
                                <form id="signupForm" action="javascript:void(null);" onsubmit="submitSignup();">
                                        <div>Username:</div><div><input type="text" name="username" /></div>
                                        <div>Password:</div><div><input type="password" name="newPass1" /></div>
                                        <div>Confirm Password:</div><div><input type="password" name="newPass2" /></div>
                                        <div class="submitDiv"><input id="submitButton" type="submit" value="continue ->"/></div>
                                </form>
                        </div>
                </div>
                <div id="outputDiv">
                </div>
        </body>
</html>