Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana koloru tła podczas alertu
Forum PHP.pl > Forum > Przedszkole
Leilang
Hej,
podczas wyświetlania alertu tło strony jest białe, jak zmienić kolor na inny ? (chcę zmienić tylko kolor strony przy wyskakującym alercie).



  1. echo "<script>alert('Pomyślnie dodano do bazy danych');</script>";
  2.  


markuz
Nie mieszkaj kodu PHP z HTML a tym bardziej z JavaScript.
Pokaż cały kod jak chcesz to zrobić porządnie.
Leilang
  1. if ($CzyJestKod == 1 AND $CzyJestGraficznyIn == 0 AND $CzyJestGraficznyOut == 0) {
  2. $sql = "UPDATE zlecenia SET graficznyIn = now(), dtp = '$dtp' WHERE kodKreskowy = $kod";
  3. echo"<script>alert('DODANO PIERWSZE SKANOWANIE');</script>";
  4. } elseif ($CzyJestKod == 1 AND $CzyJestGraficznyIn == 1 AND $CzyJestGraficznyOut == 0) {
  5. $sql = "UPDATE zlecenia SET graficznyOut = now() WHERE kodKreskowy = $kod";
  6. echo "<script>alert('DODANO DRUGIE SKANOWANIE');</script>";
  7. } elseif ($CzyJestKod == 1 AND $CzyJestGraficznyIn == 1 AND $CzyJestGraficznyOut == 1) {
  8. echo "<script>alert('ZLECENIE ZOSTAŁO JUŻ ZESKANOWANE DWUKROTNIE');</script>";
  9. } elseif ($CzyJestKod == 0 AND $CzyJestGraficznyIn == 0 AND $CzyJestGraficznyOut == 0) {
  10. echo "<script>alert('ZLECENIE NIE ZOSTAŁO ZESKANOWANE W BOKU');</script>";
  11. } else {
  12. "<script>alert('NIE MOŻNA DODAĆ DO BAZY');</script>";
  13. }
  14.  


Jak zostaną spełnione warunki z if wyskakuje alert na przykład "DODANO PIERWSZE SKANOWANIE" a tło strony zmienia się na białe. Po kliknięciu OK, wraca do pierwotnej grafiki.

Pytanie brzmi czy w jakiś łatwy sposób da się zmodyfikować kolor tła przy wyskakującym alercie (od momentu pojawienia się alertu do kliknięcia OK) ?

Dlaczego chciałbym tak to zrobić:

Mam bezprzewodowy skaner, skanując kod na stronie ten od razu wskakuje do bazy jeżeli zostaną spełnione odpowiednie warunki if. Stojąc 5 metrów od komputera nie widzę czy dodaje pierwsze skanowanie czy drugie (o czym informuje mnie alert), ale jeżeli w konkretnym przypadku kolor tła przy wyskakującym alercie będzie zielony, niebieski lub jakiś inny będę wiedział bez podchodzenia do komputera co się dzieje wink.gif
markuz
Ok, spróbuj tak:
  1. alert('costam'); document.body.style.background = 'red';
Leilang
Cytat(markuz @ 20.07.2018, 15:56:25 ) *
Ok, spróbuj tak:
  1. alert('costam'); document.body.style.background = 'red';


Niestety tak nie działa. Zauważyłem, że zmieniając background-color w html zmienia się też wyświetlanie tła alertu natomiast dopisanie kodu w ten sposób:

  1. } elseif ($CzyJestKod == 0 AND $CzyJestGraficznyIn == 0 AND $CzyJestGraficznyOut == 0) {
  2.  
  3. echo '<body style="background-color:orange">';
  4. echo "<script>alert('ZLECENIE NIE ZOSTAŁO ZESKANOWANE W BOKU');</script>";
  5. }
  6.  


Zmienia kolor tła ale dopiero po kliknięciu OK. Wniosek z tego taki, że alert pobiera kolor tła z już wczytanej strony.
Tylko teraz jak zmienić w php color tła, wczytać jeszcze raz stronę z zmienionym tłem i dopiero wtedy dodać alert ?
b4rt3kk
markuz Ci źle napisał, ponieważ alert dopóki nie zostanie zamknięty, przerywa dalsze wykonywanie skryptu.

Zrób tak:

  1. document.body.style.background = 'kolor_alertu';
  2. alert('costam');
  3. document.body.style.background = 'kolor_po_alercie';
Leilang
Cytat(b4rt3kk @ 20.07.2018, 20:07:42 ) *
markuz Ci źle napisał, ponieważ alert dopóki nie zostanie zamknięty, przerywa dalsze wykonywanie skryptu.

Zrób tak:

  1. document.body.style.background = 'kolor_alertu';
  2. alert('costam');
  3. document.body.style.background = 'kolor_po_alercie';


Zrobiłem tak:

  1. echo '<body style="background-color:red">';
  2. echo"<script>alert('DODANO PIERWSZE SKANOWANIE');</script>";
  3. echo '<body style="background-color:orange">';


Wtedy od momentu wywołania alertu do kliknięcia OK = białe tło, po kliknięciu OK tło zmienia się na czerwone. Pomarańczowego brak.
b4rt3kk
Po pierwsze, nie możesz robić takiego syfu:

  1. echo '<body style="background-color:red">';


Po drugie jak to sobie wyobrażasz, skoro php nie jest językiem dynamicznym, więc Twoje warunki wczytywane są "od razu" po zinterpretowaniu przez serwer. Na tym nie możesz oprzeć działania skryptu js. Podejrzewam, że chodzi o coś takiego?

https://jsfiddle.net/xvjo8az3/3/

Może ewentualnie na onload spróbować, ale raczej niewykonalne to co chcesz zrobić.
SmokAnalog
Ja bym zrobił tak:
[JAVASCRIPT] pobierz, plaintext
  1. document.body.classList.add('alert');
  2. alert('Pomyślnie dodano do bazy danych');
  3. document.body.classList.remove('alert')
[JAVASCRIPT] pobierz, plaintext


No i w stylach oczywiście dał odpowiednie tło dla klasy alert.
b4rt3kk
A czym to się różni od mojego fiddle?

https://jsfiddle.net/xvjo8az3/3/

Problem już został określony, a środki rozwiązania jak widać mogą być różne, ale nie dodajesz nic nowego w temacie. smile.gif
Leilang
Dziękuje za pomoc, temat można zamknąć smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.