Witam. Jestem laikiem w sprawach AJAX oraz JavaScript, chcialbym prosic Was o pomoc z prostym tutorialem. Ma on na celu wyswietlanie "podpowiedzi" dla pola html-input.
tindex.html
function hello() {
document.write('Hello!');
}
function GetXmlHttpObject() {
var xmlHttp=null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function stateChanged() {
if (xmlHttp.readyState==4) {
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}
function showHint(str) {
// document.write(str);
if (str.length==0) {
document.getElementById("txtHint").innerHTML="
<H1>---
</H1>";
return;
}
xmlHttp=GetXmlHttpObject();
if ( xmlHttp==null ) {
alert ("Your browser does not support AJAX!");
return;
}
var url="tgethint.php";
url = url + "?q=" + str;
url = url + "&sid=" + Math.random();
xmlHttp.open( "GET", url, true );
xmlHttp.send( null );
}
First Name:
<input type="text" id="txt1" onkeyup="showHint(this.value)">
tgethint.php
<?php
header("Cache-Control: no-cache, must-revalidate"); // Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// 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
$hint="";
for($i=0; $i<count($a); $i++) {
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
?>
Moglibyscie mi wyjasnic ta linijke kodu:
xmlHttp.onreadystatechange = stateChanged;czemu wywolanie funkcji stateChanged jest bez nawiasow a nie stateChanged() ? Gdy dodam nawiasy skrypt nie dziala. Co ma na celu takie wywolanie funkcji?
... czyzby chodzilo o zdarzenie JavaScript?
Bede wdzieczny za odpowiedz na moze banalne pytanie. Z gory dziekuje i pozdrawiam.
Ten post edytował bobens_83 21.12.2008, 06:16:07