Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ankieta w php
Forum PHP.pl > Forum > PHP
jewel
Chcialbym zrobic cos w rodzaju ankiety z dwiema mozliwymi odpowiedziami: tak i nie. W tym celu "wybieram" te pytania z tabeli, ktor sa mi akurat potrzebne i mam 2 radiobutony tak i nie, tylko wszystkie mi sie zaznaczaja i nie chca odznaczyc.. a ja chce, aby tylko jeden przy kazdym pytaniu sie zaznaczal na raz i zeby mozna bylo odznaczac...


  1. <?php
  2.  
  3. // laczenie z baza 
  4. $link = mysql_connect('localhost', 'root', '')  or die('Nie mozna polaczyc z baza bo: ' . mysql_error());
  5. //wybieramy baze danch
  6. mysql_select_db('baza') or die('Nie mozna wybrac bazy');
  7.  
  8. echo '<TABLE border="0" width="100%" > <TBODY> <CAPTION> <u>Wypelnij ankiete</u></CAPTION>';
  9.  
  10. $id_ank = AddSlashes($_POST['wybrane_id']);
  11. $query = "SELECT `pytanie` FROM `pytania` WHERE `id_ank` = '$id_ank'";
  12. $result = mysql_query($query) or die('Nie mozna wykonac zapytania, bo:' . mysql_error());
  13.  
  14. echo '<form action="statystyki.php" method="post">';
  15. echo '<table>';
  16.  
  17. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  18.  
  19.  echo '<TR>';
  20.  foreach ($row as $val) {
  21.  
  22. echo "<TD> $val </TD>";
  23.  echo '<td><input type="radio"></td>';
  24.  echo '<td><input type="radio"></td>';
  25.  }
  26.  echo '</TR>';
  27. }
  28.  
  29. echo '<td><input type="submit" value="Przeslij"></td>';
  30. echo '</TBODY></TABLE>';
  31.  
  32.  
  33. //zwalniamy rezultat zapytania
  34. // zamykamy polaczenie
  35. mysql_close($link);
  36.  
  37. echo '</form>';
  38. echo'</table>';
  39. ?>
Tibod
Pole INPUT też musisz dać w komórce. Teraz powinno być ok.

  1. <?php
  2. echo '<TR>';
  3. foreach ($row as $val) {
  4. echo '<TD><input type="radio"></TD>';
  5. echo "<TD> $val </TD>";
  6. }
  7. echo '</TR>';
  8. ?>
jewel
oki, wlasnie sam doszedlem do tego, wiec tresc posta jest juznieci zmieniona, teraz jest inny problem opisany w tymze zmienionym poscie...
abc667
no ale radio muszą mieć taki sam atrybut name aby tworzyły grupę
  1. <?php
  2. <input type="radio" name="pytanie">
  3. ?>
Mazur_pl
echo '<td><input type="radio" name="ODPOWIEDZ_1"></td>';

Tam gdzie ODPOWIEDZ_1 daj nazwę $_POST od odpowiedzi.
jewel
a jak zliczac ile jest zaznaczonych ktorych radiobuttonow?

  1. <?php
  2.  
  3. // laczenie z baza 
  4. $link = mysql_connect('localhost', 'root', '')  or die('Nie mozna polaczyc z baza bo: ' . mysql_error());
  5. //wybieramy baze danch
  6. mysql_select_db('baza') or die('Nie mozna wybrac bazy');
  7.  
  8. echo '<TABLE border="0" width="100%" > <CAPTION> <u>Wypelnij ankiete</u></CAPTION>';
  9.  
  10. $id_ank = AddSlashes($_POST['wybrane_id']);
  11. $query = "SELECT `pytanie` FROM `pytania` WHERE `id_ank` = '$id_ank'";
  12. $result = mysql_query($query) or die('Nie mozna wykonac zapytania, bo:' . mysql_error());
  13.  
  14.  
  15. echo '<form action="statystyki.php" method="post">';
  16. echo '<table>';
  17. echo '<br /><br />';
  18. $i=0;
  19. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  20.  
  21.  echo '<TR>';
  22.  foreach ($row as $val) {
  23.  
  24. echo "<TD> $val </TD>";
  25.  echo '<td> </td>';
  26.  echo '<td> </td>';
  27.  echo '<td>tak <input type="radio" value="tak" name="opcja'.$i.'" checked="checked"></td>';
  28.  echo '<td>nie <input type="radio" value="nie" name="opcja'.$i.'"></td>';
  29.  echo '<td>nie mam zdania<input type="radio" value="nie_mam_zdania" name="opcja'.$i.'"></td>';
  30.  }
  31.  echo '</TR>';
  32.  $i++;
  33. }
  34.  
  35. echo '<td colspan="4" align="center"><input type="submit" value="Przeslij"></td>';
  36. echo '</TABLE>';
  37.  
  38.  
  39. //zwalniamy rezultat zapytania
  40. // zamykamy polaczenie
  41. mysql_close($link);
  42.  
  43. echo '</form>';
  44. echo'</table>';
  45. ?>
Tibod
Wystarczy jak po pętli while dodasz jeszcze pole
  1. <?php
  2. echo '<input type="hidden" name="liczba_wpisow" VALUE="'.$i.'">';
  3. ?>


A w kodzie zliczającym dajesz:
  1. <?php
  2. $liczba_wpisow=(int)$_POST['liczba_wpisow'];
  3.  
  4. for ($x=1; $x<=$liczba_wpisow; $x++){
  5. if ($_POST['opcja'.$x]='tak'){
  6. $na_tak++;
  7. }
  8. }
  9.  
  10. echo 'Zaznaczono razem: '.$na_tak.' pola';
  11. ?>
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.