AJAX ASP/PHP

2012 年 10 月 22 日6410

AJAX ASP/PHP Example

« Previous

Next Chapter »


AJAX is used to create more interactive applications.


AJAX ASP/PHP Example

The following example will demonstrate how a web page can communicate with a

web server while a user type characters in an input field:

Example

Start typing a name in the input field below:

Suggestions:

Try it yourself »


Example Explained - The showHint() Function

When a user types a character in the input field above, the function "showHint()" is executed. The function is triggered by the "onkeyup"

event:

function showHint(str)

{

var xmlhttp;

if (str.length==0)

{

document.getElementById("txtHint").innerHTML="";

return;

}

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

}

}

xmlhttp.open("GET","gethint.asp?q="+str,true);

xmlhttp.send();

}

Source code explanation:

If the input field is empty (str.length==0), the function clears the

content of the txtHint placeholder and exits the function.

If the input field is not empty, the showHint() function executes the following:

Notice that a parameter (q) is added to the URL (with the content of the

input field)


The AJAX Server Page - ASP and PHP

The page on the server called by the JavaScript above is an ASP file called "gethint.asp".

Below we have created two versions of the server file, one written in ASP

and one in PHP.


The ASP File

The source code in "gethint.asp" checks an array of names, and returns the corresponding name(s) to the

browser:

<%

response.expires=-1

dim a(30)

'Fill up array with names

a(1)="Anna"

a(2)="Brittany"

a(3)="Cinderella"

a(4)="Diana"

a(5)="Eva"

a(6)="Fiona"

a(7)="Gunda"

a(8)="Hege"

a(9)="Inga"

a(10)="Johanna"

a(11)="Kitty"

a(12)="Linda"

a(13)="Nina"

a(14)="Ophelia"

a(15)="Petunia"

a(16)="Amanda"

a(17)="Raquel"

a(18)="Cindy"

a(19)="Doris"

a(20)="Eve"

a(21)="Evita"

a(22)="Sunniva"

a(23)="Tove"

a(24)="Unni"

a(25)="Violet"

a(26)="Liza"

a(27)="Elizabeth"

a(28)="Ellen"

a(29)="Wenche"

a(30)="Vicky"

'get the q parameter from URL

q=ucase(request.querystring("q"))

'lookup all hints from array if length of q>0

if len(q)>0 then

hint=""

for i=1 to 30

if q=ucase(mid(a(i),1,len(q))) then

if hint="" then

hint=a(i)

else

hint=hint & " , " & a(i)

end if

end if

next

end if

'Output "no suggestion" if no hint were found

'or output the correct values

if hint="" then

response.write("no suggestion")

else

response.write(hint)

end if

%>


The PHP File

Below is the code above rewritten in PHP.

Note: To run the example in PHP, change the value of the url variable

(in the HTML file) from "gethint.asp" to "gethint.玉环广电".

<?玉环广电

// Fill up array with names

$a[]="Anna";

$a[]="Brittany";

$a[]="Cinderella";

$a[]="Diana";

$a[]="Eva";

$a[]="Fiona";

$a[]="Gunda";

$a[]="Hege";

$a[]="Inga";

$a[]="Johanna";

$a[]="Kitty";

$a[]="Linda";

$a[]="Nina";

$a[]="Ophelia";

$a[]="Petunia";

$a[]="Amanda";

$a[]="Raquel";

$a[]="Cindy";

$a[]="Doris";

$a[]="Eve";

$a[]="Evita";

$a[]="Sunniva";

$a[]="Tove";

$a[]="Unni";

$a[]="Violet";

$a[]="Liza";

$a[]="Elizabeth";

$a[]="Ellen";

$a[]="Wenche";

$a[]="Vicky";

//get the q parameter from URL

$q=$_GET["q"];

//lookup all hints from array if length of q>0

if (strlen($q) > 0)

{

$hint="";

for($i=0; $i<count($a); $i++)

{

if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))

{

if ($hint=="")

{

$hint=$a[$i];

}

else

{

$hint=$hint." , ".$a[$i];

}

}

}

}

// Set output to "no suggestion" if no hint were found

// or to the correct values

if ($hint == "")

{

$response="no suggestion";

}

else

{

$response=$hint;

}

//output the response

echo $response;

?>

« Previous

Next Chapter »


Your suggestion:

Close [X]

Thank you for your support.

Close [X]

0 0