Witam,
napisałem prostą stronkę, w której przy pomocy comboboxa wybierana jest opcja i następnie po naciśnięciu przycisku wywoływany jest servlet, który wyciąga dane z bazy danych, a następnie przedstawia wynik na nowej stornie jsp. Teraz chciałbym to wszystko zrobić przy pomocy AJAXa, czyli aby wynik był wyświetlany na tej samej stronie. No i niestety nie wychodzi mi połączenie tego wszystkiego.
Skrypt AJAX:
<script type="text/javascript">
function createXMLHttpRequest() {
if (window.XMLHttpRequest)
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
else if (window.ActiveXObject)
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
else
alert("Your browser does not support XMLHTTP!");
return null;
}
var xmlhttp = new createXMLHttpRequest();
function handler() {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
document.getElementById("WYNIK").innerHTML=xmlhttp.responseText;
}
function ajaxExecute() {
xmlhttp.onreadystatechange = handler;
xmlhttp.open("POST","Servlet.do",true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send("form="+opcja);
}
</script>
HTML:
<body>
<div id="szablon">
<div id="FORMULARZ">
<form name="form" method="post" action="Servlet.do">
<select name="opcja">
<option>opcja1</option>
<option>opcja2</option>
<option>opcja3</option>
<option>opcja4</option>
</select>
<br/><br/>
<input type="button" name="przycisk1" value="przycisk1" onclick="script:ajaxExecute()"/>
<input type="button" name="przycisk2" value="przycisk2" onclick="script:ajaxExecute()"/>
</form>
</div>
<div id="WYNIK">wynik zapytania</div>
</div>
</body>
Przy takim kodzie po naciśnięciu przycisków nic się nie dzieje. Gdy zmienię rodzaj przycisków z "button" na "submit" to wykonuje się wszystko z pominięciem AJAXa. Proszę o jakiekolwiek wskazówki. W servlecie nadal mam podaną do wyświetlania stronę jsp. Może tutaj powinno być podane coś innego?