![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
Robię sobie prosty skrypt do obsługi ankiety/quizu. Wszystko w sumie już mam, pozostała mi tylko zmiana koloru odpowiedzi po zatwierdzeniu danych. Chciałbym, żeby dla złych odpowiedzi kolor label ustawił się na czerwony, a dla dobrych na zielony. Wiem, że trzeba ustawić "style=color:..." ale nie wiem za bardzo jak się dobrać do danej label. Poniżej jest kod, może ktoś będzie miał jakiś pomysł? Kod <?php
// Liczba możliwych odpowiedzi na 1 pytanie define('N', "3"); // Pytania $questions = array ("1st question", "2nd question", "3rd question", "4th question", "5th question", "6th question", "7th question", "8th question", "9th question", "10th question"); // Dobre odpowiedzi $answers = array ("00", "10", "20", "30", "40", "50", "60", "70", "80", "90"); if (isset($_POST['check'])) { $all = true; $score = 0; for ($i = 0; $i < count($questions); $i++) { $selected_radio = $_POST[$i]; if (!isset($selected_radio)) { $all = false; break; } else { if ($selected_radio == $answers[$i]) $score++; } } if ($all) { $final_score = $score / count($questions) *100; echo "Twój wynik to ".$final_score."%"; } else echo "Zaznacz wszystkie odpowiedzi"; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <form action="index.php" name="" method="post"> <ul> <?php for ($i = 0; $i < count($questions); $i++) { echo "<li><label>$questions[$i]</label> "; for ($j = 0; $j < N; $j++) { echo "<input type=\"radio\" name=\"$i\" id=\"$i$j\" value=\"$i$j\""; if (isset($_POST[$i])) { if ($_POST[$i] == "$i$j") echo "checked=\"checked\" />"; } echo "<label for=\"$i$j\">$i$j</label> "; } echo "</li>"; } ?> </ul> <input type="submit" value="Sprawdź" name="check" /> </form> </body> </html> |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 3 Dołączył: 17.05.2004 Skąd: Nowhere Land Ostrzeżenie: (0%) ![]() ![]() |
Może coś w ten deseń? Wtedy w css sobie zmieniasz kolory już bez modyfikacji kodu php. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź, ale chodzi mi o to, żeby pokolorować labely przy radioboxach, a nie przy <li>
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
tak? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak, tylko, że kod, który podałeś, koloruje wszystkie labely z danego pytania na 1 kolor (klasę).
Może nie wytłumaczyłem tego jasno, ale jeśli jakaś odpowiedź na pytanie x jest zła, to chciałbym uzyskać taki efekt: 1. Pytanie 1 o dobra odp. o zaznaczona odp. o coś tam W przypadku, gdy odpowiedź na pytanie x jest dobra, koloruje tylko dobrą odp.: 2. Pytanie 2 o dobra odp. o coś tam2 o coś tam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
musisz ustawić 2 klasy, normal i wrong
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@matino troche samodzielności.
widziałeś kiedyś coś takiego (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dałem radę, dziękuję wszystkim za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod <?php
// Liczba możliwych odpowiedzi na 1 pytanie define('N', "3"); // Pytania $questions = array ("1st question", "2nd question", "3rd question", "4th question", "5th question", "6th question", "7th question", "8th question", "9th question", "10th question"); // Dobre odpowiedzi $answers = array ("00", "10", "20", "30", "40", "50", "60", "70", "80", "90"); $show_answers = false; if (isset($_POST['check'])) { $all = true; $score = 0; for ($i = 0; $i < count($questions); $i++) { $selected_radio = $_POST[$i]; if (!isset($selected_radio)) { $all = false; break; } else { if ($selected_radio == $answers[$i]) { $score++; } } } if ($all) { $show_answers = true; $final_score = $score / count($questions) *100; echo "Twój wynik to ".$final_score."%"; } else echo "Zaznacz wszystkie odpowiedzi"; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <form action="index.php" method="post"> <ul> <?php for ($i = 0; $i < count($questions); $i++) { echo "<li><label>$questions[$i]</label> "; for ($j = 0; $j < N; $j++) { echo "<input type=\"radio\" name=\"$i\" id=\"$i$j\" value=\"$i$j\""; if (isset($_POST[$i])) { if ($_POST[$i] == "$i$j") { echo "checked=\"checked\" />"; if ($show_answers) { if ($_POST[$i] == $answers[$i]) { echo "<label for=\"$i$j\" style=\"color: green\">$i$j</label> "; } else { echo "<label style=\"color: red\" for=\"$i$j\">$i$j</label> "; } } else echo "<label for=\"$i$j\">$i$j</label> "; } else { if ($answers[$i] == "$i$j") { echo "<label for=\"$i$j\" style=\"color: green\">$i$j</label> "; } else echo "<label for=\"$i$j\">$i$j</label> "; } } else echo "<label for=\"$i$j\">$i$j</label> "; } echo "</li>"; } ?> </ul> <input type="submit" value="Sprawdź" name="check" /> </form> </body> </html> |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:37 |