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>