Mam mały problem ze skryptem, męczę się żeby znaleźć gdzie jest błąd, ale sam do tego nie dojdę

Generalnie strona wygląda tak - jest sobie tabela z rekordami i checkboxami (każdy rekord ma 1 checkbox), zaznaczam sobie checkboxy jakie chcę, naciskam guzik i w zaznaczonych rzędach tabeli ma się zmienić jeden parametr z "No" na "Yes". Skrypt Ajax wygląda tak:
Kod
function action() {
var rows = document.getElementById("body1").rows.length - 1;
var params = "", label, checkBox;
for (var i = 1; i <= rows; i++) {
checkBox = document.getElementById("check" + i);
label = document.getElementById(i);
if (checkBox.checked == true) {
params = params + "sn" + i + "=" + label.innerHTML;
if (i + 1 <= rows)
params = params + "&";
}
}
var httpObject = getHTTPObject();
if (httpObject != null) {
httpObject.open("POST", "RSMaccept.php", false);
httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpObject.setRequestHeader("Content-length", params.length);
alert (params);
httpObject.setRequestHeader("Connection","close");
httpObject.send(params);
httpObject.onreadystatechange = function setUpdate(){
if (httpObject.readyState == 4)
alert (httpObject.responseText);
else
alert ("Error");
};
}
window.location.reload(true);
}
var rows = document.getElementById("body1").rows.length - 1;
var params = "", label, checkBox;
for (var i = 1; i <= rows; i++) {
checkBox = document.getElementById("check" + i);
label = document.getElementById(i);
if (checkBox.checked == true) {
params = params + "sn" + i + "=" + label.innerHTML;
if (i + 1 <= rows)
params = params + "&";
}
}
var httpObject = getHTTPObject();
if (httpObject != null) {
httpObject.open("POST", "RSMaccept.php", false);
httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpObject.setRequestHeader("Content-length", params.length);
alert (params);
httpObject.setRequestHeader("Connection","close");
httpObject.send(params);
httpObject.onreadystatechange = function setUpdate(){
if (httpObject.readyState == 4)
alert (httpObject.responseText);
else
alert ("Error");
};
}
window.location.reload(true);
}
Generalnie problem jest taki, że gdy zaznaczam np. 3 rzędy w tabeli i naciskam guzik, to wartość zmienia się tylko w 2óch. Co ciekawe w 3cim (nie jest to nigdy ten sam rekord - próbowałem parę razy) wartość zmienia się na początku na taką jaką chcę, ale w bazie danych się nie zmienia i po odświeżeniu jej w phpmyadminie i poźniejszym odświeżeniu mojej strony, wartość wraca z powrotem na "No".
Nie wiem czy to może być powiązane, ale alerty w sekcji onreadystatechange nie wywołują się nigdy.
Natomiast
Kod
alert (params);
zawsze pokazuje dobrze, czyli dane są jednak przekazywane do skryptu php, który wygląda tak:
Kod
<?php
include('db.php');
while(list($key, $value) = each($HTTP_POST_VARS)) {
$query = "UPDATE escalations SET reviewed = 'Yes' WHERE sn = '$value'";
$result = mysql_query($query) or die(mysql_error());
echo "success ";
}
?>
include('db.php');
while(list($key, $value) = each($HTTP_POST_VARS)) {
$query = "UPDATE escalations SET reviewed = 'Yes' WHERE sn = '$value'";
$result = mysql_query($query) or die(mysql_error());
echo "success ";
}
?>
Jeśli ktoś móglby mnie oświecić co tu może być źle, to byłbym niemiłosiernie wdzięczny.