![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 11 Dołączył: 31.01.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Siemka.
Czy moglibyście mi poradzić jak można wykonać taki skrypt sprawdzający. Na początku pobieram z bazy losowe rekordy i tworze z nich obraz - kolor (teraz aby bylo szybciej tylko kolor - w przyszłości będzie to zmienione na tworzenie obrazków itp ale to nie ważne): 1. Pobieram color_hex i color_name z bazy, 2. Wstawiam color_hex jako tło komórki, 3. Wstawiam color_hex i color_name do ukrytego input'a (jako daną do sprawdzenia) 4. Całość generuje się 3x - 3 różne kolory z 3 input'ami (co wywołanie zmienia się name o +1).
Teraz właśnie jest problem ponieważ chce sprawdzić czy użytkownich na wzór obrazu wybrał odpowiedni kolor. W bazie do każdego hex'a przypisana jest nazwa np: 1 | #FF0000 | red - czyli id=1, hex=#FF0000 i jest to kolor=red. Właśnie teraz nie wiem jak to sprawdzić - wiem, że musze pobrać z bazy wszystkie kolory i porównać je z hex'ami z formularza. Następnie zobaczyć czy $_POST['color1/2/3'] == kolorowi z bazy (tego na podstawie hex'a). Jeżeli np. _POST['color1'] == jakiś $row['color_name'] (ten color_name jest z tego zamego wiersza co hex) to no $zmienna = 'ok' a jak ~= to $zmienna2 = 'wrong'; i przechodzi dalej do następnych 2. Po sprawdzeniu 3 wyświetla które są dobrze które źle. Myślałem, żeby zrobić 3 różne zapytania dla każdego z kolorów - było by łatwiej bo podałbym WHERE `color_hex` = $_POST['color_hex'] ale znowu gdy będzie ich 20 to... :| Jestem wręcz pewien, że idzie to zrobić o wiele łatwiej ale właśnie jak? Ma ktoś jakis dobry pomysł? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Primo zamiast name="color_hex2" lepiej dać name="color_hex[]" - wytworzy Ci to tablicę kolorów wybranych przez użytkownika, nie będzie to miało znaczenia czy wybrał 1 czy 5tysięcy, bo odwołujesz się przez jedną tablicę.
Secundo chyba źle zrozumiałam założenia. Musisz sprawdzić, czy każdy z tych wybranych kolorów znajduje się w bazie danych, tak? Ten post edytował Shili 18.07.2008, 23:50:44 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 11 Dołączył: 31.01.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Primo zamiast name="color_hex2" lepiej dać name="color_hex[]" - wytworzy Ci to tablicę kolorów wybranych przez użytkownika, nie będzie to miało znaczenia czy wybrał 1 czy 5tysięcy, bo odwołujesz się przez jedną tablicę. Secundo chyba źle zrozumiałam założenia. Musisz sprawdzić, czy każdy z tych wybranych kolorów znajduje się w bazie danych, tak? Nie. Każdy z tych kolorów znajduje się w bazie danych. Jak jak mówiłem w formularzu wyświetla się użytkownikowi: color_hex (pobrany z bazy) i 3 input'y typu radio z name=color i value=red, green, blue. Użytkownik na podstawie color_hex (który wstawiany jest do tła komórki) ma wybrać jaki to jest kolor (zaznaczyć odpowiednią "kropke"). Więc: Jeżeli color_hex (tło komórki) jest: color_hex="FF0000" i użytkownik wybierze radio name=red to w momecie gdy formularz będzie to sprawdzał ma on wyświetlić np " echo 'Dobry wybór'; " Więc, formularz musi wyciągnąc color_hex i color_name z bazy i najpierw porównać czy $row['color_hex'] == $_POST['color_hex'] - to jest i musi być TRUE, teraz sprawdzić czy $row['color_name'] == $_POST['color'] jeżeli tak to wyświetka jakieś echo czy coś i przechodzi do następnego. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 08:16 |