Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP] Bardzo prosty formularz
pagis
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Witam,

to będzie mój pierwszy formularz, jednak mam problem i bardzo proszę o pomoc bo nigdzie nie mogę znaleźć jakiejś informacji która by mi pomogła uruchomić mój pierwszy formularz (IMG:style_emoticons/default/wink.gif) Pewnie prosty, ale siedzę nad nim już sporo...

Więc, skleiłem taki kod:

  1. <form action="wyslij.php" method="post">
  2. <select name="wybor">
  3. <option>A</option>
  4. <option>B</option>
  5. <option>C</option>
  6. <option>D</option>
  7. </select>
  8.  
  9. Podaj wynik: <input type="text" name="wynik"/>
  10. Wynik: <input type="text" name="wynik2" value="tu chciałbym aby skrypt pokazywał mi wynik na stronie" />
  11. <input type="submit" value="Sprawd? wynik">
  12. </from>


I mam problem jak napisać skrypt pliku wyslij.php. W każdym z 4 przypadków, wynikiem będzie 0 lub 1. Muszę tylko jakoś uwzględnić założenia:
- jeżeli wybieram opcję A to jeżeli A>1 to otrzymuję wynik: 0, jeżeli A<1 to otrzymuję wynik: 1,
- jeżeli wybieram opcję B to jeżeli B>1.1 to otrzymuję wynik: 0, jeżeli B<1.1 to otrzymuję wynik: 1,
- jeżeli wybieram opcję C to jeżeli C>1.2 to otrzymuję wynik: 0, jeżeli C<1.2 to otrzymuję wynik: 1,
- jeżeli wybieram opcję D to jeżeli D>1.3 to otrzymuję wynik: 0, jeżeli D<1.3 to otrzymuję wynik: 1.

Czy mogę liczyć na jakąś podpowiedź lub pomoc w napisaniu pliku wyslij.php?(IMG:style_emoticons/default/smile.gif)
Z góry dziękuję

Ten post edytował pagis 28.01.2014, 01:29:06
Go to the top of the page
+Quote Post
mar1aczi
post
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Pokaż co już napisałeś, wskaż co/gdzie Ci nie działa to pomożemy naprawić błędy.
Go to the top of the page
+Quote Post
pagis
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


  1. $zwroc = 0;
  2. $wynik = (float)$_POST['wynik'];
  3. $wybor = $_POST['wybor'];
  4.  
  5. if( ($wybor === 'A' AND $wynik < 1)
  6. OR
  7. ($wybor === 'B' AND $wynik < 1.1)
  8. OR
  9. ($wybor === 'C' AND $wynik < 1.2) OR
  10. ($wybor === 'D' AND $wynik < 1.3)
  11. )
  12. $zwroc = 1;
  13.  
  14. echo $zwroc;


Ale ja bym chciał aby to było inaczej - aby z dwóch stron był przedział wpisany. Najlepiej, aby również dla każdego z wyników (z opcji A, B, C, D) był jeszcze przypisany oddzielna wartość - byłoby super znacznie ułatwiło by mi to dawanie odpowiedzi, a nie tylko tworzenie pytań pod odpowiedź (IMG:style_emoticons/default/wink.gif)

Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Wydaje mi się, że jesteś początkujący, więc:
Przede wszystkim musisz nieco zmienić swój formularz. OPTION musi zawierać value:
  1. <option value="a" >A</option>

Co do INPUTów, nie bardzo rozumiem, co chcesz osiągnąć.
Co to jest "Podaj wynik" i "Wynik"? Co mają dokładnie robić te INPUTy? Bo nie bardzo widzę miejsca do wpisania liczb do porównania...
Bo może chcesz pod OPTION przypisać liczby, wtedy zaczyna mieć to sens: wykonując działania na jednym OPTION i pierwszym INPUT...
Wpierw musisz odebrać z formularza dane, np:
  1. $a = $_POST['a'];

Wtedy idąc moim tokiem myślenia, możesz dodać zmienną z OPTION ze zmienną z INPUT:
  1. $wynik2 = $a + $wynik;

Musisz poznać składnię IF (przykład):
  1. if ( $a > 1 ) {
  2. $wynik2 = 0;
  3. } else ($a < 1 ) {
  4. $wynik2 = 1;
  5. }

Potem zmienną $wynik musisz wyświetlić:
  1. echo $wynik2;
Go to the top of the page
+Quote Post
pagis
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Tak, jestem początkujący...

Jeżeli chodzi o input - będzie miejsce aby wpisać jedną licznę (własnie w input). Następnie, gdy ta liczba zostanie wpisana, skrypt wie bo ma już wcześniej zdefiniowane że dla każdej z opcji każdy przedział jest inny. Wynik powinien być pokazywany, nie na nowej stronie, a w inpucie obok, czyli wynik2.

Nie. W option będzie pytanie słowne, nie liczba. W skrypcie muszą zostać zdefiniowane odpowiedzi z liczbami.

Dla opcji A (zamiast A będzie pytanie): jeżeli A<1.8 to 0 natomiast jeżeli A>3.8 to 1 (cudownie by było, gdybym wiedział jeszcze jak będzie wynik między 1.8 a 3.8 jak ktoś wpisze to że pokaże komunikat np. "Wynik jest dwuznaczny".

I tak miałbym to zdefiniować dla każdej z 4 odpowiedzi, bardziej pod tym kątem mi chodziło (IMG:style_emoticons/default/wink.gif) Może nie dopisałem tego wczoraj bo siedziałem nad tym sporo i nie mogłem zrobić...

Ten post edytował pagis 28.01.2014, 10:36:38
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




W takim razie musisz użyć JavaScript, żeby wyświetlić wynik bez odświeżania strony.
Go to the top of the page
+Quote Post
pagis
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


A pomijając już ten wynik bez odświeżenia strony, bo na moje początkujące kroki jeszcze sobie z tym nie poradzę...
Bo Kshyhoo tam mi pisałeś, jakby opcje A, B, C, D były liczbami. A te opcje to będą pytania
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To już wogóle nie nie kumam, co chcesz zrobić (IMG:style_emoticons/default/wink.gif) Może napisz łopatologicznie.
Go to the top of the page
+Quote Post
pagis
post
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Okej, to od nowa.

Mam cztery opcje.

  1. <form action="wyslij.php" method="post">
  2. <select name="wybor">
  3. <option value="Pytanie A">Pytanie A</option>
  4. <option value="Pytanie B">Pytanie B</option>
  5. <option value="Pytanie C">Pytanie C</option>
  6. <option value="Pytanie D">Pytanie D</option>
  7. </select>
  8.  
  9. Podaj liczbe: <input type="text" name="wynik">
  10. Wynik: <input type="text" name="wynik2" value="tu powinien wyswietlic sie wynik" /> <input type="submit" value="Sprawd? wynik">
  11. </from>


To jest mój skrypt widoczny na stronie. I dalej:
- jeżeli wybieram "Pytanie A" to jeżeli: Liczba podana dla pytania A<1.5 to mam odpowiedź (może być słowna aby lepiej rozumieć) - NIE natomiast jeżeli mam liczbę podaną dla pytania A>3.5 to mam odpowiedź: TAK. Fajnie by było, gdyby jeszcze zdefiniować, że podana liczba dla tego pytania mieszcząca się w przedziale od 1.5 do 3.5 dawała odpowiedź: "Wynik dwuznaczny".

Analogicznie do kolejnych 3 pytań tak samo. Chciałbym mieć taką możliwość, aby dla każdego z pytań wstawiać sobie WYNIK, co byłoby dla mnie oczywistym ułatwieniem bo nie musiałbym wymyślać pytań pod wynik który jest zdefiniowany.

Jakbyś mógł mi pomóc, to bym prosił abyś podał mi przykład dla "Pytania A" i "Pytania B". Chciałbym aby wynik pojawiał się na tej samej stronie, ale jeżeli jest to bardzo skomplikowane, a jestem początkujący także jestem w stanie z tego zrezygnować.

Ten post edytował pagis 28.01.2014, 11:05:38
Go to the top of the page
+Quote Post
Turson
post
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Cytat(Kshyhoo @ 28.01.2014, 10:21:49 ) *
Przede wszystkim musisz nieco zmienić swój formularz. OPTION musi zawierać value:

Nie musi. Wtedy przyjmie wartość z pomiędzy <option></option
Tym bardziej, że kolega zrobił
  1. <option value="Pytanie A">Pytanie A</option>

co jest bezsensu


Cytat
- jeżeli wybieram "Pytanie A" to jeżeli: Liczba podana dla pytania A<1.5 to mam odpowiedź (może być słowna aby lepiej rozumieć) - NIE natomiast jeżeli mam liczbę podaną dla pytania A>3.5 to mam odpowiedź: TAK. Fajnie by było, gdyby jeszcze zdefiniować, że podana liczba dla tego pytania mieszcząca się w przedziale od 1.5 do 3.5 dawała odpowiedź: "Wynik dwuznaczny".

  1. <form action="" method="post">
  2. <select name="wybor">
  3. <option value="PytA">Pytanie A</option>
  4. <option value="PytB">Pytanie B</option>
  5. <option value="PytC">Pytanie C</option>
  6. <option value="PytD">Pytanie D</option>
  7. </select>
  8.  
  9. Podaj liczbe: <input type="text" name="wynik">
  10. Wynik: <input type="text" name="wynik2" value="tu powinien wyswietlic sie wynik" /> <input type="submit" name="wyslano" value="Sprawdź wynik">
  11. </from>
  12.  
  13. <?PHP
  14. if(isset($_POST['wyslano'])){
  15. $wynik = $_POST['wynik'];
  16.  
  17. if($_POST['wybor']==="PytA"){
  18. if($wynik < 1.5) echo "Nie";
  19. elseif($wynik > 3.5) echo "Tak";
  20. elseif($wynik > 1.5 && $wynik < 3.5) echo "Wynik jest dwuznaczny";
  21. }
  22. }
Go to the top of the page
+Quote Post
pagis
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Turson dzięki (IMG:style_emoticons/default/smile.gif) Dodałem sobie na 4 pytania i działa wszystko fajnie (IMG:style_emoticons/default/smile.gif)

  1. else {
  2. echo 'Nie uzupe?ni?e? pola wynik';
  3. }


A jak mogę dodać ten komunikat jak nie uzupełnie pola wynik?

Ten post edytował pagis 28.01.2014, 13:25:37
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 04:08