![]() |
![]() ![]() |
![]() |
![]()
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. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ciężko samemu testować, ale może ilość iteracji jest mniejsza niż wierszy przez:
rows.length - 1; Poza tym możesz sobie zrobić mini-debuggera: po istotnych funkcjach rób sobie zrzut danych, i np wyświetlaj przez console.log(), to w ff zobaczysz co się zmieniło i ile razy. Np:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 03:12 |