Form Validation using Ajax

Untung99 menawarkan beragam permainan yang menarik, termasuk slot online, poker, roulette, blackjack, dan taruhan olahraga langsung. Dengan koleksi permainan yang lengkap dan terus diperbarui, pemain memiliki banyak pilihan untuk menjaga kegembiraan mereka. Selain itu, Untung99 juga menyediakan bonus dan promosi menarik yang meningkatkan peluang kemenangan dan memberikan nilai tambah kepada pemain.

Berikut adalah artikel atau berita tentang Harian dengan judul Form Validation using Ajax yang telah tayang di terimakasih telah menyimak. Bila ada masukan atau komplain mengenai artikel berikut silahkan hubungi email kami di, Terimakasih.

This article follows on from Web Services
using XMLHttpRequest (Ajax) and demonstrates the usage of our
AjaxRequestXML.js class for validating online forms.

Real-time Form Validation using Ajax

This example uses the JavaScript XMLHttpRequest object and PHP
server-side scripting to check that the Email address entered is valid
(at least that it matches a particular regular expression) and that the
Age lies between 16 and 100. As the form is completed, the values are
passed immediately to the server as POST variables, the server
calculates a result, passing back an XML file which is then parsed to
trigger various actions on the page as you will see.

If you enter an invalid Email address, or a value for Age outside the
specified range, a red warning message
will appear and form will not be able to be submitted. Similarly, when
you enter a valid value the message will be green. When all fields have been validated the form will
be able to be submitted.

Samples of the XML files returned in each case can be found below.
These are generated by PHP, but another
server-side scripting language would also work.

The onsubmit handler for the form
requires also that a value be entered in all fields before the form can
be submitted.

The Email field input is tested using Ajax when the
onchange event is triggered (when the input value changes and
the focus moves to another element). We could have also used
onblur but that’s more resource-intensive as it’s called even
when the value hasn’t been modified.

The Age field is checked whenever it’s onkeyup
event is triggered – every time a key is pressed and released while the
focus is on that element.

Generally onchange is the best option when validating forms,
or onkeyup/Down if you want to control the input character by

Markup of the HTML Form and JavaScript

The markup for the HTML form used in the example is as follows:

Within this code you can see that the Email and Age input field have
onchange event handlers which make an Ajax request to the web
server when a value has been entered or updated.

For this to work we assign an id to the input box (’email’),
to the associated checkbox (‘valid_email) and to the DIV where the
feedback text is to appear (‘rsp_email’). These elements can then be
referenced by the Ajax XML response.

The ’empty comment” in the DIV is just a place-holder – required in
some older browsers when a DIV is initially empty but needs later to be
referenced by a script.

When we invoke the callAjax() function we pass three
parameters: the method (in this case ‘checkEmail’ or ‘checkAge’)
to use for testing, the value to test, and the id of the input
field (target). The target value is also used to work out the id
of the relevant checkbox and the DIV that will display feedback.


Sample Responses

The PHP script that does the processing in this case,
/scripts/validate.xml.php accepts the three variables (method,
value, target) in POST format and uses them to generate an appropriate
response in XML format. We won’t go into the details of how the script
actually does this as that’s been covered elsewhere (see links

Example 1

For an Age input value of 12 the validation script returns the
following XML document:

rsp_ageSorry, 12 is too youngrsp_agecolorredvalid_agecheckedfalseage

The commands executed then in this case are as follows:

  1. Set content of the div rsp_age to “Sorry, 12 is too young”;
  2. Set color of the div rsp_age to “red”;
  3. Set the checked property of the checkbox for the age to false;
  4. Set the focus back to the age input.

Example 2

For an Age input value of 30 (or any number between 16 and
100) the XML returned is similar, but displays a positive message in
green and marks the age input as valid using the checkbox.

rsp_age30 is just right!rsp_agecolorgreenvalid_agecheckedtrue

The commands executed are as follows:

  1. Set content of the div rsp_age to “30 is just right!”;
  2. Set color of the div rsp_age to “green”;
  3. Set the checked property of the checkbox for age to true.

As discussed previously, all target values need to match
ids of elements in the HTML document. See the article Web Services using XMLHttpRequest (Ajax)
for details on all avaiable commands and their parameters.

For assistance in generating a valid XML response using PHP, read the
article Generating an XML Response for Ajax
Applications where you’ll find a PHP class that complements the preceding JavaScript functions.

The ajax-validate.xml.php script

Several people have already asked for a copy of the
ajax-validate.xml.php script referred to in these examples.

My feeling is that this article already describes how to generate the
XMLHttpRequest (Ajax) request, passing GET or POST variables to a
server-side script using our JavaScript class, and the related article
referred to above provides a complementary PHP
class for generating XML responses, so really all that’s left is
basic programming to process the incoming variables and generate the
relevant XML response.

For those having trouble getting started, here’s a walk-through:

1) check that the three $_POST variables exist;
2) if $method == 'checkAge' check that $value falls between 16 and 100;
3) if $method == 'checkEmail' check that $value is a valid email format;
4) generate an XML response to set the response text/style and checkbox state.

And here’s some of the code that generates the XML response:

// check that all POST variables have been set

if(!isset($_POST['method']) || !$method = $_POST['method']) exit;
if(!isset($_POST['value']) || !$value = $_POST['value']) exit;
if(!isset($_POST['target']) || !$target = $_POST['target']) exit;

$passed = FALSE;
$retval = "";

case 'checkAge':
// ...
// set the $retval message, and the $passed variable to TRUE or FALSE
// ...


case 'checkEmail':
// ...
// set the $retval message, and the $passed variable to TRUE or FALSE
// ...




include "class.xmlresponse.php";
$xml = new xmlResponse();

// set the response text

$xml->command('setcontent', [
'target' => "rsp_{$target}",
'content' => htmlentities($retval)

if($passed) {
// set the message colour to green and the checkbox to checked

$xml->command('setstyle', [
'target' => "rsp_{$target}",
'property' => 'color',
'value' => 'green'
$xml->command('setproperty', [
'target' => "valid_{$target}",
'property' => 'checked',
'value' => 'true'

} else {
// set the message colour to red, the checkbox to unchecked and focus back on the field

$xml->command('setstyle', [
'target' => "rsp_{$target}",
'property' => 'color',
'value' => 'red'
$xml->command('setproperty', [
'target' => "valid_{$target}",
'property' => 'checked',
'value' => 'false',
$xml->command('focus', [
'target' => $target




Hopefully that solves the problems some people have had implementing
the code.

Putting it all together

A few people have commented that this is all a bit confusing when it
comes to implementing it on your own website. That’s hardly surprising
given the mix of technologies so I’ve created a graphic (below) showing
how the different files fit together and what goes where:

You need to create two files. The first is an HTML file containing
the FORM which needs to be validated, and some JavaScript which can be
called from different fields in the form using event handlers
(e.g. ‘onclick’, ‘onchange’, …).

The JavaScript code then passes data to the second file which is your
validation script. In this case it’ss a PHP file, but another
server-side scripting language would work just as well. The validation
script returns XML data which is then processed and applied to the form
to provide feedback to the user.

The other two files (represented in the graphic in green) can be
downloaded or copied from this site and included from your files as

Pros and Cons of using Ajax?

In this particular example, and with form validation in general, the
advantage over other techniques (JavaScript and/or server-side
validation) is that we can make use of server-side technologies to
perform more complex validation and present real-time feedback to the
user without reloading the page.

The drawback is that Ajax works only in the most recent browsers, and
requires that JavaScript (and sometimes ActiveX as well) be enabled.
Another problem is that unless you put a lot of effort into building a
complex framework you could end up with three sets of code: one for
client-side validation, one for Ajax validation and one for server-side
validation which is always necessary in any case.

If you want to do a calculation that can only be done server-side
(eg. checking that a username is unique in your database) or you want to
update the DOM with data from another script or site then Ajax is the
perfect tool. But you still have to cater for (or choose to exclude)
non-compatible browsers.