Problem przy pobieraniu danych metoda $POST |
Problem przy pobieraniu danych metoda $POST |
30.04.2018, 15:36:27
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 8.04.2018 Ostrzeżenie: (0%) |
Jestem w trakcie tworzenia testu w PHP. Mam taki problem, że po zaznaczeniu odpowiedzi wyświetla mi jakie odpowiedzi zaznaczyłem, lecz przy sprawdzeniu poprawnej odpowiedzi, wywala mi błąd.
A bład po wcisniecu przycisku zakoncz: Notice: Undefined index Dlaczego tak się dzieje? Ten post edytował MrMethodCube 30.04.2018, 15:37:43 |
|
|
30.04.2018, 15:56:24
Post
#2
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Notice to informacja, że nie index istnieje. Gdybyś napisał, jaki to index, może nie trzeba by patrzeć w szklaną kulę. Powód zapewne ten sam, co zazwyczaj: przed wysłaniem formularza skrypt nie widzi zmiennej...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
1.05.2018, 09:35:02
Post
#3
|
|
Grupa: Zarejestrowani Postów: 129 Pomógł: 13 Dołączył: 29.03.2012 Ostrzeżenie: (0%) |
A wywal tablicę odpowiedzi po za warunki. Może to chodzi właśnie o nią.
|
|
|
2.05.2018, 06:25:53
Post
#4
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
Problem raczej tkwi w polu input, przypisujesz do niego index, a przecież name to nazwa przesyłanej zmiennej np, odpowiedz, a value powinien zawierac twój index czyli $kay
czyli jak dla mnie powinno wyglądać to tak i wtedy pobierasz to
Ten post edytował LowiczakPL 2.05.2018, 06:27:47 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
3.05.2018, 23:34:34
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 8.04.2018 Ostrzeżenie: (0%) |
Tylko moim problemem nie jest wyświetlenie odpowiedzi którą zaznaczyłem Problem jest w metodzie POST... ponieważ jeśli chcę wyświetlić poprawną odpowiedź np.
echo " Porpawna odp to: ".$dobraodp[0]; to działa. Ale gdy dam już $_POST[$dobraodp[0]] to nie działa. Chociaż tablica $dobraodp jest w formularzu i powinna być stworzona po wciśnięciu przycisku wysyłania. |
|
|
4.05.2018, 08:58:41
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
var_dump($_POST);
|
|
|
4.05.2018, 09:08:27
Post
#7
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
To nie ma prawa działać, bo zmienna nie może mieć POLSKICH znaków ani SPACJI, odpowiedziałem wyżej co masz zrobić aby to zadziałało.
-------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
4.05.2018, 13:24:29
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
To w ogóle nie ma prawa działać, bo odpowiedzi w ogóle nie są przypisane do pytań w formularzu i tyle. Po pierwsze ilość pytań (zmienna $ilepytan) w bazie danych to nie to samo, co identyfikator pytania, dlatego nie możemy użyć tutaj num_rows chyba, że baza danych będzie cały czas taka sama i nikt nie usunie np. pytania o id 5, 20, czy 41. Jeśli docelowo mają być wyświetlane wszystkie pytania, to w ogóle nie ma się co nad tym zastanawiać i należy pozostać przy pierwszym zapytaniu:
które daje nam cały zestaw potrzebnych danych i można tylko na tym bazować bez konieczności tworzenia kolejnych pętli, w których wybieramy odpowiednio losowe pytania i ich liczbę. Jeśli z kolei liczba wyświetlanych pytań ma być zmienna, a baza danych jest mała, to można by spróbować zapytania:
gdzie zmienna $liczbapytan to ilość pytań, które chcemy pobrać z bazy danych. Zapytanie to wybierze nam gotowy zbiór losowych danych w oczekiwanej ilości. Nie sprawdzi się jednak w przypadku dużych baz danych, gdzie trzeba szukać jakiejś konkretnej metody optymalizacji zapytania albo odpowiedniego podejścia po stronie php. W obu przypadkach możemy sobie utworzyć tablicę asocjacyjną, której indeks będzie jednocześnie identyfikatorem pytania:
Co ważne, kolumna poprawna w bazie danych powinna wskazywać tylko i wyłącznie numer poprawnej odpowiedzi (ewentualnie nazwę kolumny z poprawną odpowiedzią, czyli dosłownie odp1 lub odp2). Nie może przechowywać całej poprawnej odpowiedzi, bo będzie to kompletnie nieoptymalne i obarczone błędami. Skąd wiadomo, że w kolumnie poprawna nie pojawi się jakiś dodatkowy pusty znak? Wtedy porównanie udzielonej odpowiedzi z poprawną "bierze w łeb". Jeśli chcemy wyświetlić wszystkie pytania w losowej kolejności, to czeka nas jeszcze trochę zabawy, ale to już pozostawiam Tobie (dla ułatwienia proponuje przejrzeć komentarze do shuffle). W każdym bądź razie docelowo nawet z pierwszego zapytania możemy uzyskać wymieszaną tablicę wszystkich lub ograniczonych ilościowo pytań wraz z powiązanymi odpowiedziami i wskazaniem tej poprawnej. Załóżmy, że mamy taką tablicę. Pozostaje zatem wygenerować elementy formularza:
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 15:15 |