Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Bardzo prosty formularz
Forum PHP.pl > Forum > Przedszkole
pagis
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 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?smile.gif
Z góry dziękuję
mar1aczi
Pokaż co już napisałeś, wskaż co/gdzie Ci nie działa to pomożemy naprawić błędy.
pagis
  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ź wink.gif

Kshyhoo
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;
pagis
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 wink.gif Może nie dopisałem tego wczoraj bo siedziałem nad tym sporo i nie mogłem zrobić...
Kshyhoo
W takim razie musisz użyć JavaScript, żeby wyświetlić wynik bez odświeżania strony.
pagis
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
Kshyhoo
To już wogóle nie nie kumam, co chcesz zrobić wink.gif Może napisz łopatologicznie.
pagis
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ć.
Turson
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. }
pagis
Turson dzięki smile.gif Dodałem sobie na 4 pytania i działa wszystko fajnie 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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.