Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Checkbox
Forum PHP.pl > Forum > Bazy danych > MySQL
SamoChwała
Witam,
mam taki mały problem z polem o wartości (tak lub nie), ale po kolei.

W formularzu wstawiającym dane do bazy zastosowałem Checkbox'a do wstawiania wartości (tak/nie) i to działa.

Problem pojawia się gdy ponownie chcę wyedytować dane przy pomocy tego samego formularza. Wszystkie dane są oprócz odpowiedniej wartości (zaznaczone/nie zaznaczone) w Checkbox'ie, bez względu czy jest tam wcześniej wstawione (tak/nie).

Jak zczytać wartość z bazy do tego Checkbox'a?
tumczasty
  1. <?php
  2. echo'<input type=\"checkbox\" name=\"opcja1\"';
  3. if(sprawdzenie-czy-powinno-byc-zaznaczone) echo' checked';
  4. echo'>jakaś opcja<br>';
  5. ?>


albo w 1 linijce:
  1. <?php
  2. echo'<input type=\"checkbox\" name=\"opcja1\"'.(sprawdzenie-czy-powinno-byc-zaznaczone?' checked':'').'>jakaś opcja';
  3. ?>
SamoChwała
Do tej pory korzystałem z rozwijanej listy. Doszedłem jednak do wniosku, że dla dwóch opcji rozwijana lista jest bez sensu i dlatego chciałem wykorzystać checkbox'a. Mimo podpowiedzi jakoś nie mogę dać sobie rady, tzn. dodawać dodaje tylko ponownie ich wyświetlić nie potrafię. Mój kod wygląda następująco (zostawiłem tylko 2 pola, żeby było czytelniej):
  1. <?php
  2.  
  3. function insert()
  4. {
  5. global $HTTP_SERVER_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $Translation;
  6.  
  7. {
  8. $tak_lub_nie = $HTTP_POST_VARS[&#092;"tak_lub_nie\"];
  9. }
  10. else
  11. {
  12. $tak_lub_nie = addslashes($HTTP_POST_VARS[&#092;"tak_lub_nie\"]);
  13. }
  14. if($tak_lub_nie == &#092;"\") $tak_lub_nie = \"0\";
  15.  
  16. sql(&#092;"insert into tescik (tak_lub_nie) values (\" . (($tak_lub_nie != \"\") ? \"'$tak_lub_nie'\" : \"NULL\") . \")\");
  17. return mysql_insert_id();
  18. }
  19.  
  20. function delete($selected_id)
  21. {
  22.  
  23. global $Translation;
  24.  
  25. sql(&#092;"delete from tescik where Id='$selected_id'\");
  26. }
  27.  
  28. function update($selected_id)
  29. {
  30. global $HTTP_SERVER_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $Translation;
  31.  
  32. {
  33. $tak_lub_nie = $HTTP_POST_VARS[&#092;"tak_lub_nie\"];
  34. }
  35. else
  36. {
  37. $tak_lub_nie = addslashes($HTTP_POST_VARS[&#092;"tak_lub_nie\"]);
  38. }
  39.  
  40. sql(&#092;"update tescik set tak_lub_nie=\" . (($tak_lub_nie != \"\") ? \"'$tak_lub_nie'\" : \"NULL\") . \" where Id='$selected_id'\");
  41. }
  42.  
  43. function form($selected_id = &#092;"\", $AllowUpdate = 1, $AllowInsert = 1, $AllowDelete = 1)
  44. {
  45. // funkcja zwracajaca do formularza wybrany rekord jesli jest wybrany z tabeli $se
  46. ected_id
  47. // i wlaczane sa przyciski do edycji, kasowania i czyszczenia formularza
  48. // jesli z tabeli nie jest wybrany zaden rekord to wyswietlany jest przycisk dodaj
  49.  
  50. global $Translation;
  51.  
  52. $code = &#092;"<br><table border=1 bordercolor=navy cellpadding=0 cellspacing=0><tr><td><div class=TableTitle>Detail View</div></td></tr><tr><td><table>\";
  53. $code .= &#092;"nt<tr><td colspan=2></td><td rowspan=7 valign=top>\";
  54. if($AllowInsert)
  55. $code .= &#092;"<div><input type=image src=insert.gif name=insert alt='\" . $Translation[\"add new record\"] . \"'></div>\";
  56.  
  57. // combobox: tak_lub_nie
  58. $combo_tak_lub_nie = new Combo;
  59. $combo_tak_lub_nie->ListItem = explode(&#092;";;\", \"tak;;nie\");
  60. $combo_tak_lub_nie->ListData = explode(&#092;";;\", \"tak;;nie\");
  61. $combo_tak_lub_nie->SelectName = &#092;"tak_lub_nie\";
  62.  
  63. if($selected_id)
  64. {
  65. $res = sql(&#092;"select * from tescik where Id='$selected_id'\");
  66. $row = mysql_fetch_object($res);
  67. $combo_tak_lub_nie->SelectedData = $row->tak_lub_nie;
  68.  
  69. $code .= &#092;"<br>\";
  70. if($AllowUpdate)
  71. $code .= &#092;"<div><input type=image src=update.gif name=update alt='\" . $Translation[\"update record\"] . \"'></div>\";
  72. if($AllowDelete)
  73. $code .= &#092;"<div><input type=image src=delete.gif name=delete alt='\" . $Translation[\"delete record\"] . \"' onclick='return confirm(\"\" . $Translation[\"are you sure?\"] . \"\");'></div>\";
  74. $code .= &#092;"<div><input type=image src=cancel_search.gif name=deselect alt='\" . $Translation[\"deselect record\"] . \"'></div>\";
  75. }
  76. $combo_tak_lub_nie->Render();
  77.  
  78. $code .= &#092;"</td></tr>\";
  79.  
  80.  
  81. // szczegoly formularza $code .= \"nt<tr><td class=TableHeader valign=top><div class=TableHeader style='text-align:right;'>Id</div></td><td class=TableBody>$row->Id&nbsp;&nbsp;</td></tr>\";
  82. $code .= &#092;"nt<tr><td class=TableHeader valign=top><div class=TableHeader style='text-align:right;'>tak_lub_nie</div></td><td class=TableBody>$combo_tak_lub_nie->HTML&nbsp;&nbsp;</td></tr>\";
  83.  
  84. $code .= &#092;"</table></td></tr></table>\";
  85.  
  86. return $code;
  87. }
  88. ?>


Pomóżcie, jak to zmienić. Do zaoferowania mam tylko moją wdzięczność i DZIKUJE!!!
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.