Dwa pola:
Do każdego z pól (inputy) dodano zdarzenie onchange, które odpala skrypt w PHP, który to aktualizuje bazę danych o wpisaną wartość. Całość działa i baza danych się aktualizuje, ale chciałem uzyskać pewien EFEKT wizualny podczas wpisywania danych.
Otóż po zdarzeniu ochange na jednym z pól input jego tło staje się czerwone. Kiedy żądanie zwróci odpowiedź (XML), którą parsuję itd., wnętrze znacznika div - czyli właśnie mój input
ma 'zgasnąć' i ... gaśnie :-). Natomiast sam Div dostaje na stałe ramkę koloru czerwonego, aby było widać, że ta wartość została zmieniona. No więc nie chodzi o błąd działania. Tylko pojawił się problem,
jak działa ten AJAX bo:
Kiedy edytuję pierwsze pole i przeskoczę do drugiego, pierwsze robi się czerwone (żądanie poszło). Zmieniam drugie pole i wysyła się drugie żądanie zmiany - a więc i ten input staje się czerwony.
Zaznaczam, że pierwszy jeszcze nie wrócił, kiedy wysłałem ten. I teraz nagle wraca .... drugie żądanie i mój input staje się ponownie biały a zawierający go DIV staje się otoczony czerwoną ramką.
PIERWSZY jednak div nie zmienia ramki a jego input zostaje czerwony, tak, jakby to pierwsze żądanie nie doszło. Skrypt jednak się wykonał, bo OBIE wartości w bazie zostały zmienione.
Rozumiem, że można zebrać wartości we wszystkie pola i aktualizować CAŁOŚĆ jednym przyciskiem. Jednak skrypt ma działać tak jak opisałem.
I dodam, że kiedy poczekam, aż wróci pierwsze żądanie i dopiero zrobię zmianę w drugim polu, to oba się podświetlą jak trzeba. Nie ma więc błędów w skryptach tylko NIE bardzo rozumiem, dlaczego jedno żądanie jakby nie do końca wyświetliło się na ekranie (nie sparsował wyników, które dostał, bo wysłałem już drugie?) Proszę o wyjaśnienie dokładniejsze jak to działa i może poradę, czy da się tak zrobić, jak chcę.
Przepraszam za skomplikowany opis.