Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wartość checkboxa przekazana do bazy
Forum PHP.pl > Forum > Przedszkole
olszakkox
Witam, zacznę od tego że jestem zupełnie zielony w tym języku a chciałbym w ramach samorozwoju nauczyć się czegoś nowego. Do tej pory bawiłem się tylko z HTML i bazami w MS ACCES ale pojawiła się okazja nauczenia się PHP i MsSQL. Posiadam stronę na której jest wyszukiwarka podpięta do bazy danych MySQL, po wpisaniu frazy wyświetla rekordy z nią zawartą w formie tabeli i tu jest wszystko ok problem zaczyna się w miejscu gdzie chciałbym w 2 kolumnach dodać checkboxy i zapisać w bazie danych ich zawartość np. zaznaczony to 1 a niezaznaczony 0.
Tak wyglądają moje wypociny :
  1. <!DOCTYPE html>
  2. <html lang="pl-PL" style="background: #000000;">
  3.  
  4. <head>
  5. <meta charset=utf-8">
  6. <title>INDEX</title>
  7. <link href="media/styl.css" rel="stylesheet" type="text/css">
  8. </head>
  9.  
  10.  
  11. <body>
  12. <div id="main-body">
  13. <div class="to">
  14. <!-- miejsce na logo i opis -->
  15. </div>
  16.  
  17.  
  18. <div class="me1">
  19. <nav class="nav-me">
  20. <ul class="nav">
  21. <li class="nav.li">
  22. <form action="" method="post">
  23. <input name="search" type="search" autofocus><input type="submit" name="button">
  24. </form>
  25. </li>
  26. <li> <input type="submit" value="submit" name="sub"> </li>
  27. </ul>
  28. </nav>
  29. </div>
  30.  
  31. <div class="ar">
  32. <!-- zawartość strony -->
  33. <table>
  34. <tr><td><b>Nszwa</td><td><b>HACK</td><td><b>CAPTUR</td><td><b>Link</td></tr>
  35.  
  36. <?php
  37.  
  38. $con=mysql_connect('localhost', 'root', '','portale');
  39. $db=mysql_select_db('portale');
  40.  
  41.  
  42. if(isset($_POST['button'])){ // klik
  43.  
  44. $search=$_POST['search'];
  45.  
  46. $query=mysql_query("select * from lista where NAZWA_PORTALU like '%{$search}%'");
  47.  
  48. if (mysql_num_rows($query) > 0) {
  49. while ($row = mysql_fetch_array($query)) {
  50. echo "<tr>
  51. <td>".$row['NAZWA_PORTALU']."</td>";
  52. if($row['HACK']==1){
  53. echo "<td><input type='checkbox' name='hackcz' value='1' checked></td>";
  54. }
  55. else{
  56. echo "<td><input type='checkbox' name='hackcz' value='0'></td>";
  57. }
  58. if($row['CAPTUR']==1){
  59. echo "<td><input type='checkbox' name='capturcz' value='1' checked></td>";
  60. }
  61. else{
  62. echo "<td><input type='checkbox' name='capturcz' value='0'></td>";
  63. }
  64. echo "<td>".$row['LINK']."</td>
  65. </tr>";
  66. }
  67. }else{
  68. echo "Brak portali<br><br>";
  69. }
  70.  
  71. }
  72. ?>
  73.  
  74. </div>
  75. </div>
  76. </body>
  77. </html>

Bardzo dziękuję za wszelkie odpowiedzi i wskazówki. Pozdrawiam.
trueblue
Tobie jest potrzebny input radio, a nie checkbox. Albo właśnie checkbox, ale jeden (włączony/wyłączony).

https://developer.mozilla.org/en-US/docs/We...ent/input/radio
http://kawalekkodu.pl/post/znikajacy-punkt...nych-checkboxow
olszakkox
No dobra, zmieniłem input z checkboxa na radio. Jak ręcznie w bazie danych zmieniam wartość kolumny z radio (0 to niezaznaczone, 1 to zaznaczone) to wszystko działa teraz chodzi mi o to jak podpiąć przycisk submit tak aby zapisywało mi wybraną opcje w bazie danych ?

------------------------------- edit

Sprawdziłem jeszcze raz radio boxy i nie mogę się jednak zgodzić z tym że to właśnie je potrzebuję gdyż radiobox jest aktywny tylko wtedy gdy wyświetlamy jeden wiersz a jak wyświetlimy np 2 wiersze z zaznaczoną opcja w tej samej kolumnie to nie wyświetla już nic (po mimo iż w bazie danych jest wartość 1). Będę się kurczowo trzymał checkbox`ów.
viking
Na początek zobacz co wysyłasz czy czy checkbox czy radio nie ma znaczenia. var_dump($_POST) i dopiero jak to zrozumiesz idź dalej. Funkcji mysql się nie używa, nie istnieją do php7 a php5 ma już zakończone wsparcie. A poza tym MsSQL i MySQL to 2 różne rzeczy.
trueblue
Cytat(olszakkox @ 25.02.2018, 13:03:39 ) *
Sprawdziłem jeszcze raz radio boxy i nie mogę się jednak zgodzić z tym że to właśnie je potrzebuję gdyż radiobox jest aktywny tylko wtedy gdy wyświetlamy jeden wiersz a jak wyświetlimy np 2 wiersze z zaznaczoną opcja w tej samej kolumnie to nie wyświetla już nic (po mimo iż w bazie danych jest wartość 1). Będę się kurczowo trzymał checkbox`ów.

A wiesz, że w Twoim przypadku dla każdego wiersza grupa radio powinna mieć inną wartość atrybutu name?
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.