Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ankieta w php
jewel
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 14.04.2007

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


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. ?>


Ten post edytował jewel 3.06.2007, 15:45:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Tibod
post
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 2
Dołączył: 9.05.2007
Skąd: INTERNET

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


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. ?>
Go to the top of the page
+Quote Post
jewel
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 14.04.2007

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


oki, wlasnie sam doszedlem do tego, wiec tresc posta jest juznieci zmieniona, teraz jest inny problem opisany w tymze zmienionym poscie...

Ten post edytował jewel 3.06.2007, 15:47:12
Go to the top of the page
+Quote Post
abc667
post
Post #4





Grupa: Zarejestrowani
Postów: 229
Pomógł: 0
Dołączył: 29.05.2007

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


no ale radio muszą mieć taki sam atrybut name aby tworzyły grupę
  1. <?php
  2. <input type="radio" name="pytanie">
  3. ?>
Go to the top of the page
+Quote Post
Mazur_pl
post
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 11.05.2007

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


echo '<td><input type="radio" name="ODPOWIEDZ_1"></td>';

Tam gdzie ODPOWIEDZ_1 daj nazwę $_POST od odpowiedzi.
Go to the top of the page
+Quote Post
jewel
post
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 14.04.2007

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


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. ?>


Ten post edytował jewel 3.06.2007, 17:50:25
Go to the top of the page
+Quote Post
Tibod
post
Post #7





Grupa: Zarejestrowani
Postów: 108
Pomógł: 2
Dołączył: 9.05.2007
Skąd: INTERNET

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


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. ?>


Ten post edytował Tibod 3.06.2007, 23:42:40
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: 20.12.2025 - 04:10