Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] problem ze skryptem
matino
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

Ostrzeżenie: (0%)
-----


Witam wszystkich,

Mam mały problem ze skryptem, męczę się żeby znaleźć gdzie jest błąd, ale sam do tego nie dojdę (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

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);
             }

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 ";
}
?>


Jeśli ktoś móglby mnie oświecić co tu może być źle, to byłbym niemiłosiernie wdzięczny.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 00:47