Så er der nok brug for en AJAX-løsning.
Jeg vil i den forbindelse da gerne benytte lejligheden til at reklamere lidt for olebole's yderst lovende site (som allerede er tilføjet min linksamling ;-))
http://www.dengodekode.dk som omhandler god kodeskik og fede kodestumper med en seriøs forklaring til!
Nå, men nok om reklamen. På dette site kan du bla. finde noget om AJAX og der er bla denne wrapper som sætter lidt ældre IE-browsere i stand til at tilbyde XMLHttpRequest på samme måde som de nyere gør. Det ser således ud (der kan findes en beskrivelse til netop dette på
http://www.dengodekode.dk/artikler/ajax/xmlhttprequest_wrapper.php):
<script type="text/javascript">
(function(){
if (window.XMLHttpRequest) return;
var o = null, s,
a = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var i=0,j=a.length; i<j; i++) {
s=a[i];
try {
if (o=new ActiveXObject(s)) break;
}
catch(e){};
}
window.XMLHttpRequest = o ? function(){return new ActiveXObject(s)} : null;
o = null;
})();
</script>
Dette script skal ligge som det første script du inkluderer i din head-sektion af det dokument hvor det skal bruges. Derefter kan du lave din forretningslogik med følgende funktioner (igen nappet fra oleboles eksempler på ovenstående link og tilpasset en anelse):
<script type="text/javascript">
var checked = [];
function sendCheckbox(sQuery) {
_oHttp = new XMLHttpRequest();
_oHttp.open("post", "
http://www.domain.dk/reg.asp", true);
_oHttp.onreadystatechange = function(){ checkboxSent(_oHttp) };
_oHttp.send(sQuery);
}
function checkboxSent(oHttp) {
if (oHttp.readyState<4) return;
// Fjern det første element i checked-listen
checked.splice(0,1);
// - og dræb derefter objektet
oHttp = null;
setTimeout("sendNaesteCheckbox()", 10);
}
function sendNaesteCheckbox() {
if(checked.length != 0)
sendCheckbox("id=" + checked[0]);
}
function initSendCheckbox() {
var frm = document.getElementById("dinForm");
if(frm) {
for(var i = 0; i < frm.elements.length; i++) {
if(frm.elements[i].name.substr(0,8) == "Checkbox") {
checked[checked.length] = frm.elements[i].value;
}
}
}
sendNaesteCheckbox();
return false;
}
</script>
<form id="dinForm" onsubmit="return sendFoersteCheckbox()">
Checkbox 1: <input type="checkbox" name="Checkbox1" value="1"><br>
Checkbox 2: <input type="checkbox" name="Checkbox2" value="2"><br>
Checkbox 3: <input type="checkbox" name="Checkbox3" value="3"><br>
Checkbox 4: <input type="checkbox" name="Checkbox4" value="4"><br>
<input type="submit" value="send data">
</form>
Noget i den stil. Det er totalt utestet, så mon ikke der lige skal justeres lidt, men jeg håber da idéen er nogenlunde på plads... :)