Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Formularz typu radio
Forum PHP.pl > Forum > Przedszkole
Galakar
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ę.
Galakar
Wielkie dzięki. Już rozumiem co robiłem źle. Szczególnie dzięki za pierwszy link. Był wytłumaczony łatwo i przystępnie.
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.