Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML]Formularz typu radio
Galakar
post 29.05.2011, 18:58:53
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.05.2011
Skąd: Warszawa

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


Witam wszystkich.

Jestem właśnie na etapie poznawania języka php. Ostatnio poznałem kod na stworzenie formularza, a następnie zapisanie danych w osobnym pliku. Wszystko działało dobrze, póki były to pola typu "text" lub "checkbox".

Niestety przy używaniu opcji formularza "radio", w pliku pop.txt zapisywane są wszystkie trzy opcje odpowiedzi bez zaznaczenia, którą się wybrało. Na forum są porady jak to rozwiązać, ale przy użyciu JS, co jest dla mnie czarną magią (no i zależy mi na zrozumieniu co takiego robię źle w php, że nie wychodzi).

Kod na stronie index.html wygląda następująco:
  1. <form action="pop.php" method=post>
  2. <input type="radio" name="rbglos" value="a" id="a" />Aaa
  3. <input type="radio" name="rbglos" value="b" id="b" />Bbb
  4. <input type="radio" name="rbglos" value="abstain" id="abstain" checked="checked" />Abstain
  5. <input type="submit" value="Zagłosuj">
  6. </form>


Na kolejne stronie (pop.php) przed nagłówkiem kod wygląda następująco:
  1. <?php
  2. //utwórz krótkie nazwy zmiennych
  3. $ilosca = $_POST['a'];
  4. $iloscb = $_POST['b'];
  5. $iloscabstain = $_POST['abstain'];
  6. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  7. ?>


Już w samym dokumencie kod wygląda następująco:
  1. if($ilosca)
  2. {
  3. echo '<font color=red>';
  4. echo 'Oddales glos na Aaa!<br />';
  5. echo '</font>';
  6. }
  7. elseif($iloscabstain)
  8. {
  9. echo '<font color=red>';
  10. echo 'Wstrzymałeś się od głosu!<br />';
  11. echo '</font>';
  12. }
  13. elseif($iloscb)
  14. {
  15. echo '<font color=red>';
  16. echo 'Oddales glos na Bbb!<br />';
  17. echo '</font>';
  18. }
  19. $ciagwyjsciowy = $ilosca." Aaa \t".$iloscb." Bbb \t".$iloscabstain." Abstain \t".$nick."\n";
  20.  
  21. // otwarcie pliku w celu dopisywania
  22. @ $wp = fopen("$DOCUMENT_ROOT/zamowienia/pop.txt", 'ab');
  23. if (!$wp)
  24. {
  25. echo '<p><strong> Twój głos nie został przyjęty. Proszę spróbować pózniej.</strong></p></body></html>';
  26. }
  27. fwrite($wp, $ciagwyjsciowy, strlen($ciagwyjsciowy));
  28. fclose($wp);
  29. echo '<p>Głos oddany.</p>';


Próbowałem już różnych modyfikacji, ale nadal nie wiem dlaczego:
1) nie wyświetla mi się informacja na kogo oddano głos;
2) nie zapisuje mi się oddany głos do pliku pop.txt.

Będę wdzięczny za jakąkolwiek sugestię.
Go to the top of the page
+Quote Post
athei
post 29.05.2011, 19:05:15
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


http://programowanie.celary.net/folmularze_w_php.html
http://webmade.org/kursy-online/formularze-kurs-php.php
Go to the top of the page
+Quote Post
Galakar
post 29.05.2011, 21:22:54
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.05.2011
Skąd: Warszawa

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


Wielkie dzięki. Już rozumiem co robiłem źle. Szczególnie dzięki za pierwszy link. Był wytłumaczony łatwo i przystępnie.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 07:18