?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 .="divFirst Name:/divdivinput type="text" name="firstName" //div";
$sForm .="divLast Name:/divdivinput type="text" name="lastName" //div";
$sForm .="divEmail:/divdivinput 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();"
divUsername:/divdivinput type="text" name="username" //div
divPassword:/divdivinput type="password" name="newPass1" //div
divConfirm Password:/divdivinput 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