Reklama
Strona 1 z 2 12 OstatniaOstatnia
Pokazuje wyniki od 1 do 15 z 17

Temat: PHP - pomoc w rozszerzeniu opcji.

  1. #1
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny PHP - pomoc w rozszerzeniu opcji.

    Strona:
    www.Seqa.pl
    Kod php:
    <?php
    $wynik = 0;
    if($_POST['q1'] == 2) { $wynik = 1;}
    if($_POST['q2'] == 2) { $wynik = $wynik+1;}
    if($_POST['q3'] == 1) { $wynik = $wynik+1;}
    if($_POST['q4'] == 3) { $wynik = $wynik+1;}
    if($_POST['q5'] == 2) { $wynik = $wynik+1;}
    if($_POST['q6'] == 3) { $wynik = $wynik+1;}
    if($_POST['q7'] == 3) { $wynik = $wynik+1;}
    if($_POST['q8'] == 1) { $wynik = $wynik+1;}
    if($_POST['q9'] == 1) { $wynik = $wynik+1;}
    if($_POST['q10'] == 2) { $wynik = $wynik+1;}
    if($_POST['q11'] == 2) { $wynik = $wynik+1;}
    if($_POST['q12'] == 1) { $wynik = $wynik+1;}
    if($_POST['q13'] == 2) { $wynik = $wynik+1;}
    if($_POST['q14'] == 3) { $wynik = $wynik+1;}
    if($_POST['q15'] == 1) { $wynik = $wynik+1;}
    if($_POST['q16'] == 1) { $wynik = $wynik+1;}
    if($_POST['q17'] == 1) { $wynik = $wynik+1;}
    if($_POST['q18'] == 2) { $wynik = $wynik+1;}
    if($_POST['q19'] == 2) { $wynik = $wynik+1;}
    if($_POST['q20'] == 3) { $wynik = $wynik+1;}
    if($_POST['q21'] == 2) { $wynik = $wynik+1;}
    if($_POST['q22'] == 1) { $wynik = $wynik+1;}
    if($_POST['q23'] == 2) { $wynik = $wynik+1;}
    if($_POST['q24'] == 3) { $wynik = $wynik+1;}
    if($_POST['q25'] == 2) { $wynik = $wynik+1;}
    if($_POST['q26'] == 1) { $wynik = $wynik+1;}
    if($_POST['q27'] == 2) { $wynik = $wynik+1;}
    if($_POST['q28'] == 2) { $wynik = $wynik+1;}
    if($_POST['q29'] == 3) { $wynik = $wynik+1;}
    if($_POST['q30'] == 2) { $wynik = $wynik+1;}
    echo "Twój wynik to: ".$wynik.".<br/ >";
    echo "Poprawne odpowiedzi: ".$wynik.".<br />";
    $bledne = 30-$wynik;
    echo "Błędne odpowiedzi: ".$bledne;
    ?>
    Problem polega na tym, że chce przy wyświetleniu wyników dodać klawisz szczegóły, który będzie pokazywać, które odpowiedzi są poprawne a, które błędne.

  2. #2

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Przepisany skrypt:

    Kod:
    
    <?php
    
    $odp = array(2,2,1,3,2,3,3,1,1,2,2,1,2,3,1,1,1,2,2,3,2,1,2,3,2,1,2,2,3,2);
    $poprawne = array();
    $wynik = 0;
    for($i = 1; $i <= 30; $i++)
    {
    
    $qz = 'q'.$i;
    $k = $i - 1;
    
    if($_POST[$qz] == $odp[$k])
    { $poprawne[] = true;  ++$wynik; } else { $poprawne[] = false; }
    
    
    }
    
    echo "Twój wynik to: ".$wynik.".<br/ >";
    echo "Poprawne odpowiedzi: ".$wynik.".<br />";
    
    if($_GET['szczegoly'] == 1)
    {
    
    for($i = 1; $i <= 30; $i++)
    {
    
    $k = $i - 1;
    
    if($poprawne[$k] == true)
    {
    echo 'Zadanie '.$i.' poprawnie.<br/>';
    
    }
    else
    echo 'Zadanie '.$i.' błędnie.<br/>';
    
    }
    
    }
    
    $bledne = 30-$wynik;
    echo "Błędne odpowiedzi: ".$bledne;

  3. Reklama
  4. #3
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny

    Zaraz to sprawdzę i z edytuje post.


    @Up, chyba nie o to chodziło. Miało to wyglądać tak, że po tym jak nacisniesz na button wyślij to pokazuje Ci wyniki:
    Twój wynik to: XXX.
    Poprawne odpowiedzi: XXX.
    Błędne odpowiedzi: XXX
    a pod tym klawisz szczegóły, który pokazuje dokładnie w, którym pytaniu był błąd i jaka powinna być poprawna odp.
    Ostatnio zmieniony przez Zakon : 04-04-2013, 21:17

  5. #4

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    @up
    Wykodzilem mu to tak ze jak dorzuci ?szczegoly=1 to wtedy pokaze mu ktore odpowiedzi byly dobre a ktore zle ( zadanie 1 zle, zadanie 2 dobrze i tak dalej ). A chyba link.php?szczegoly=1 sam umie zrobic?

  6. #5
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny

    Ja mam to wrzucić w osobny plik czy podpiąć pod ten?

    @Down, to moja pierwsza styczność z php, a miałem od razu robić pracę na zaliczenie praktyk :<
    Ostatnio zmieniony przez Zakon : 04-04-2013, 23:04

  7. #6

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    @up
    a) Wrzuc w jeden plik zamiast Twojego skryptu ( zrob sobie backup jak chcesz ).
    b) W momencie kiedy juz pokazesz wyniki, zrob pod tym link <a href="tenskrypt.php?szczegoly=1">pokaz szczegoly</a>
    Wtedy jak wywola sie ponownie, z $_GET['szczegoly'] == 1, pokaze Ci ta liste.

    Rozumiem ze sie dopiero uczysz? ;d

  8. #7
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny



    Po naciśnięciu tego buttona, wyniki pokazują mi się między poprawnymi i błędnymi odpowiedziami, nie da rady tego przenieść na koniec? I czy da radę aby pokazało co się zaznaczyło, a co się powinno zaznaczyć.

    @edit. btw. szkoda, że za każdy post nie mogę dodać reputacji, zajebiście mi pomagasz :)

    @edit2, okej przerobiłem to aby pokazywało w dobrej kolejności. Jakby ktoś kiedyś potrzebował :

    <?php

    $odp = array(2,2,1,3,2,3,3,1,1,2,2,1,2,3,1,1,1,2,2,3,2,1, 2,3,2,1,2,2,3,2);
    $poprawne = array();
    $wynik = 0;
    for($i = 1; $i <= 30; $i++)
    {

    $qz = 'q'.$i;
    $k = $i - 1;

    if($_POST[$qz] == $odp[$k])
    { $poprawne[] = true; ++$wynik; } else { $poprawne[] = false; }


    }

    echo "Twój wynik to: ".$wynik.".<br/ >";
    echo "Poprawne odpowiedzi: ".$wynik.".<br />";

    if($_GET['szczegoly'] == 1)
    {

    for($i = 1; $i <= 30; $i++)
    {

    $k = $i - 1;

    if($poprawne[$k] == true)
    {
    echo 'Zadanie '.$i.' poprawnie.<br/>';
    $bledne = 30-$wynik;
    echo "Błędne odpowiedzi: ".$bledne;

    }

    else
    echo 'Zadanie '.$i.' błędnie.<br/>';

    }

    }
    @Edit3, dopiero teraz się szcziałem, że wgl nie wyświetla po mojej edycji ile błędnie, muszę się z tym pobawić.
    Ostatnio zmieniony przez Zakon : 04-04-2013, 23:22

  9. #8

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Kod:
    if($poprawne[$k] == true)
    {
    echo 'Zadanie '.$i.' poprawnie.<br/>';
    $bledne = 30-$wynik;
    echo "Błędne odpowiedzi: ".$bledne;
    
    }
    To jest zle, powinno byc samo:
    Kod:
    if($poprawne[$k] == true)
    {
    echo 'Zadanie '.$i.' poprawnie.<br/>';
    }
    Natomiast to:
    Kod:
    $bledne = 30-$wynik;
    echo "Błędne odpowiedzi: ".$bledne;
    musisz wywalic poza kontekst tej klauzuli, no bo czemu ma pokazywac ilosc blednych odpowiedzi tylko jeli ktoras odpowiedz jest dobra? To bez sensu. Postaw to po:
    Kod:
    echo "Twój wynik to: ".$wynik.".<br/ >";
    echo "Poprawne odpowiedzi: ".$wynik.".<br />";
    I bedzie dobrze :)

  10. #9
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny

    <?php

    $odp = array(2,2,1,3,2,3,3,1,1,2,2,1,2,3,1,1,1,2,2,3,2,1, 2,3,2,1,2,2,3,2);
    $poprawne = array();
    $wynik = 0;
    for($i = 1; $i <= 30; $i++)
    {

    $qz = 'q'.$i;
    $k = $i - 1;

    if($_POST[$qz] == $odp[$k])
    { $poprawne[] = true; ++$wynik; } else { $poprawne[] = false; }


    }

    echo "Twój wynik to: ".$wynik.".<br/ >";
    echo "Poprawne odpowiedzi: ".$wynik.".<br />";
    $bledne = 30-$wynik;
    echo "Błędne odpowiedzi: ".$bledne.".<br />";

    if($_GET['szczegoly'] == 1)
    {

    for($i = 1; $i <= 30; $i++)
    {

    $k = $i - 1;

    if($poprawne[$k] == true)
    {
    echo 'Zadanie '.$i.' poprawnie.<br/>';

    }
    else
    echo 'Zadanie '.$i.' błędnie.<br/>';

    }

    }
    Teraz mam coś takiego, i za cholerę nie mogę załapać z tymi podmianami co napisałeś :<

    + Tutaj mam filmik jak bugują się wyświetlane poprawne i błędne odpowiedzi:

    Ostatnio zmieniony przez Zakon : 04-04-2013, 23:44

  11. #10
    Avatar filip955
    Data rejestracji
    2009
    Położenie
    Poznań
    Posty
    103
    Siła reputacji
    16

    Domyślny

    podmień zmienną k na i
    if($poprawne[$i] == true)

  12. #11
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny

    @Up, Nie wiem co miało to poprawić ale nic nie zmieniło :<

    @Topic, wygląda to jakby szczegóły nie pobierały danych z tego :(

  13. #12

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Cytuj filip955 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    podmień zmienną k na i
    k jest po to aby indeksowalo od 0 a nie od 1, bo arraye sie indeksuja od 0, a on wysyla odpowiedzi od 1.

  14. #13
    Avatar Malpa of Hell
    Data rejestracji
    2006
    Położenie
    Stargard
    Wiek
    30
    Posty
    556
    Siła reputacji
    19

    Domyślny

    Kod PHP:
    <?php
    $odp = array(2,2,1,3,2,3,3,1,1,2,2,1,2,3,1,1,1,2,2,3,2,1,2,3,2,1,2,2,3,2);
    $poprawne = array();
    $_bledne = array();
    $wynik = 0;
    
    for($i = 1; $i <= 30; $i++) {
    	$qz = 'q'.$i;
    	$k = $i - 1;
    	if(isset($_POST[$qz]) ? $_POST[$qz] == $odp[$k] : false) {
    		$poprawne[$i] = true;
    		++$wynik;
    	} else {
    		$poprawne[$i] = false;
    		$_bledne[$k] = isset($_POST[$qz]) ? $_POST[$qz] : false;
    	}
    }
    if(isset($_GET['szczegoly']) ? $_GET['szczegoly'] == 1 : false)
    {
    	for($i = 1; $i <= 30; $i++) {
    		$k = $i - 1;
    		if($poprawne[$i] == true) {
    			echo 'Zadanie '.$i.' poprawnie ('. $odp[$k] .')<br/>';
    		} else {
    			echo 'Zadanie '.$i.' błędnie. (<strike>'.$_bledne[$k].'</strike> <b>'. $odp[$k] .'</b>)<br/>';
    		}
    	}
    }
    
    echo "<hr>Twój wynik to: ".$wynik.".<br/ >";
    echo "Poprawne odpowiedzi: ".$wynik.".<br />";
    $bledne = 30-$wynik;
    echo "Błędne odpowiedzi: ".$bledne;
    ?>
    Troche zmodyfikowalem wasz kod.

  15. #14
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny

    @Up, kod boski :D, tylko dalej problem, że nie pokrywa się z tym co było przed rozwinięciem szczegółów. Screen:


  16. #15
    Avatar Zakon
    Data rejestracji
    2011
    Położenie
    Bydgoszcz/Katowice
    Wiek
    29
    Posty
    1,888
    Siła reputacji
    14

    Domyślny

    Refresh, wiem, że nie po 24/48h ale na poniedziałek muszę mieć to zrobione :(

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Odpowiedzi: 2
    Ostatni post: 15-06-2016, 23:28
  2. Matura z matematyki i fizyki na rozszerzeniu.
    Przez Ikkaku w dziale Szkoła i nauka
    Odpowiedzi: 12
    Ostatni post: 09-05-2014, 00:11
  3. cofniecie opcji dysku z pendrive'a
    Przez Pytoo w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 1
    Ostatni post: 28-04-2014, 19:03
  4. Skrypt PHP - przesyłanie danych z formularza php do pliku .txt
    Przez Żarówa2SR w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 1
    Ostatni post: 24-10-2012, 17:06
  5. Nie mogę ustawić opcji DirectX9
    Przez Toxik w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 4
    Ostatni post: 04-04-2012, 08:06

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •