Welcome

首页 / 脚本样式 / Ajax / xajax的FORM例子

复制代码 代码如下:
<?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>