Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Checkbox jako input
Forum PHP.pl > Forum > Przedszkole
wicek
Witam , borykam się z małym problemem ... Mam bazę danych i wyświetlam pola w tabelce , na końcu każdego wiersza jest pole checkbox z unikalnym id rekordu (tak sądzę).
W jaki sposób mogę zrobić by po zaznaczeniu jakiegoś checkboxa (może być ich pare) robił się POST że chcę ten rekord nadpisać ? W dalszej części zrobię które pole chce nadpisać zapytanie mysql i przycisk submit.
Szukałem przez wójka google ale chyba odpowiedniej frazy nie znam , dźwięczny będę jeżeli ktoś podsunie jakiś tutorial lub myśl snitch.gif

Pozdrawiam

Wicek

  1. <?
  2. $polaczenie = mysql_connect('localhost', 'test', 'qqaazz11');
  3. if(!$polaczenie)
  4. {
  5. die('Błąd połączenia: ' . mysql_error());
  6. }
  7. //wybieramy bazę danych
  8. $db = @mysql_select_db("test", $polaczenie);
  9. if(!$db)
  10. {
  11. die('Błąd połączenia z bazą ' . mysql_error());
  12. }
  13. mysql_query("SET NAMES utf8");
  14. $wynik = mysql_query("SELECT Nazwa_tematu,Data_wiercenia,Magazyn,Prowadzacy,id FROM probki ORDER BY Nazwa_tematu ASC") or die('Błąd zapytania');
  15. echo "<table cellpadding=2 border=1>";
  16. echo "<tr>";
  17. echo"<td>Naztwa tematu</td>";
  18. echo"<td>Data wiercenia</td>";
  19. echo"<td>Magazyn</td>";
  20. echo"<td>Prowadzący</td>";
  21. echo "<td>id</td>";
  22. echo "</tr>";
  23. while($r=mysql_fetch_assoc($wynik)) {
  24. echo "<tr>";
  25. echo "<td>".$r['Nazwa_tematu']."</td>";
  26. echo "<td>".$r['Data_wiercenia']."</td>";
  27. echo "<td>".$r['Magazyn']."</td>";
  28. echo "<td>".$r['Prowadzacy']."</td>";
  29. $x=$r['id'];
  30. echo "<td>".$x."</td>";?>
  31. <td><input type="checkbox" name="$x" value="$x" /></td><?
  32. echo "</tr>";
  33. }
  34. echo "</table>";
  35. ?>

trueblue
  1. <input type="checkbox" name="id_rekord[]" value="$x" />
wicek
Hmm tworzy tablicę z tymi wszystkimi id tylko proboję ją odebrać i jest pusta.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <title>Dane próbek</title>
  7. <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  8. <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  9. <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  10. <link rel="stylesheet" href="/resources/demos/style.css">
  11. <script>
  12. $(function() {
  13. $( "#datepicker" ).datepicker({ dateFormat: "dd-mm-yy" });
  14. });
  15. </script>
  16. </head>
  17. <body>
  18. <?
  19. $polaczenie = mysql_connect('localhost', 'test', 'qqaazz11');
  20. if(!$polaczenie)
  21. {
  22. die('Błąd połączenia: ' . mysql_error());
  23. }
  24. //wybieramy bazę danych
  25. $db = @mysql_select_db("test", $polaczenie);
  26. if(!$db)
  27. {
  28. die('Błąd połączenia z bazą ' . mysql_error());
  29. }
  30. mysql_query("SET NAMES utf8");
  31. $wynik = mysql_query("SELECT Nazwa_tematu,Data_wiercenia,Magazyn,Prowadzacy,id FROM probki ORDER BY Nazwa_tematu ASC") or die('Błąd zapytania');
  32. echo "<table cellpadding=2 border=1>";
  33. echo "<tr>";
  34. echo"<td>Naztwa tematu</td>";
  35. echo"<td>Data wiercenia</td>";
  36. echo"<td>Magazyn</td>";
  37. echo"<td>Prowadzący</td>";
  38. echo "<td>id</td>";
  39. echo "</tr>";
  40. while($r=mysql_fetch_assoc($wynik)) {
  41. echo "<tr>";
  42. echo "<td>".$r['Nazwa_tematu']."</td>";
  43. echo "<td>".$r['Data_wiercenia']."</td>";
  44. echo "<td>".$r['Magazyn']."</td>";
  45. echo "<td>".$r['Prowadzacy']."</td>";
  46. $x=$r['id'];
  47. echo "<td>".$x."</td>";?>
  48. <td><input type="checkbox" name="id_rekord[]" value="$x" /></td><?
  49. echo "</tr>";
  50. }
  51. echo "</table>";
  52. ?>
  53. <form action="update.php" method="POST">
  54. <h3>Operacje:<br></h3>
  55. Czynność:
  56. <select name="Czynnosc">
  57. <option value="null" selected="selected">Brak</option>
  58. <option value="bronowice">Do bronowic</option>
  59. <option value="utylizacja">Do utylizacji</option>
  60. </select>
  61. Data utylizacji:
  62. <input type="text" id="datepicker" name="Data_utylizacji"><br>
  63. <table>
  64. <tr>
  65. <td rowspan="3" align="left" valign="top">Lokalizacja:</td>
  66. <td><input type="radio" name="Magazyn" value="mazowiecka" checked="checked" />Mazowiecka</td>
  67. </tr>
  68. <tr>
  69. <td><input type="radio" name="Magazyn" value="bronowice" />Bronowice</td>
  70. </tr>
  71. <tr>
  72. <td><input type="radio" name="Magazyn" value="deleted" />Usunięte</td>
  73. </tr>
  74. </table><br>
  75. <input type="submit" value="Dodaj" />
  76. </form>
  77. <a href="index.php">Powrót</a>
  78. </body>
  79. </html>


update.php
  1. <?php
  2. $lokalizacja = $_POST['Magazyn'];
  3. $czynnosc = $_POST['Czynnosc'];
  4. $datauty = $_POST['Data_utylizacji'];
  5. $rekord[] = $_POST['id_rekord[]'];
  6. $polaczenie = mysql_connect('localhost', 'test', 'qqaazz11');
  7. if(!$polaczenie)
  8. {
  9. die('Błąd połączenia: ' . mysql_error());
  10. }
  11. $db = @mysql_select_db("test", $polaczenie);
  12. if(!$db)
  13. {
  14. die('Błąd połączenia z bazą ' . mysql_error());
  15. }
  16. mysql_query("SET NAMES utf8");
  17. foreach($rekord as $id){
  18. $add = @mysql_query("UPDATE probki SET Magazyn='$lokalizacja',Czynnosc ='$czynnosc',Data_utylizacji='$datauty' WHERE id='$id'");
  19. if ($add)
  20. echo "Zaktualizowano!";
  21. }
  22. mysql_close($polaczenie);
  23. header("refresh:1;url=tematy.php");
  24. ?>


Bardzo prawdopodobne jest że źle odbieram tą tablicę , skrypt się uruchmia wyświetla się zaktualizowano ale tablica jest pusta , próbowałem wyświetlić id.
trueblue
  1. $rekord=$_POST['id_rekord'];
  2. print_r($rekord); //tu bedziesz widzial jak wyglada ta tablica


A input dokładnie tak:
<input type="checkbox" name="id_rekord[]" value="<?php echo $x;?>" />
nospor
1)
NIe: $rekord[] = $_POST['id_rekord[]'];
a: $rekord = $_POST['id_rekord'];
Patrz co idzie postem a nie strzelasz....
print_r($_POST);
i od razu widzisz co idzie.

2)
<td><input type="checkbox" name="id_rekord[]" value="$x" /></td>
Tutaj do pola wstawiasz tekst $x a nie zawartosc zmiennej $x. Jak chesz wstawic zawartosc to ma to byc w kodzie PHP a nie HTML
wicek
print_r($_POST);
idą tylko dane z 3 pól nie wyświetla żadnego id , w jakis sposób połączyć ten checkbox z polem submit ?

Ok udało się dodałem początek <form action="update.php" method="POST"> przed input checkbox i działą tylko mam pytanie czy to jest "estetyczne"?
  1. <?
  2. $polaczenie = mysql_connect('localhost', 'test', 'qqaazz11');
  3. if(!$polaczenie)
  4. {
  5. die('Błąd połączenia: ' . mysql_error());
  6. }
  7. //wybieramy bazę danych
  8. $db = @mysql_select_db("test", $polaczenie);
  9. if(!$db)
  10. {
  11. die('Błąd połączenia z bazą ' . mysql_error());
  12. }
  13. mysql_query("SET NAMES utf8");
  14. $wynik = mysql_query("SELECT Nazwa_tematu,Data_wiercenia,Magazyn,Prowadzacy,id FROM probki ORDER BY Nazwa_tematu ASC") or die('Błąd zapytania');
  15. echo "<table cellpadding=2 border=1>";
  16. echo "<tr>";
  17. echo"<td>Naztwa tematu</td>";
  18. echo"<td>Data wiercenia</td>";
  19. echo"<td>Magazyn</td>";
  20. echo"<td>Prowadzący</td>";
  21. echo "<td>id</td>";
  22. echo "</tr>";
  23. while($r=mysql_fetch_assoc($wynik)) {
  24. echo "<tr>";
  25. echo "<td>".$r['Nazwa_tematu']."</td>";
  26. echo "<td>".$r['Data_wiercenia']."</td>";
  27. echo "<td>".$r['Magazyn']."</td>";
  28. echo "<td>".$r['Prowadzacy']."</td>";
  29. $x=$r['id'];
  30. echo "<td>".$x."</td>";?>
  31. <td><form action="update.php" method="POST"><input type="checkbox" name="id_rekord[]" value="<?php echo $x;?>" /></td><?
  32. echo "</tr>";
  33. }
  34. echo "</table>";
  35. ?>
  36.  
  37. <h3>Operacje:<br></h3>
  38. Czynność:
  39. <select name="Czynnosc">
  40. <option value="null" selected="selected">Brak</option>
  41. <option value="bronowice">Do bronowic</option>
  42. <option value="utylizacja">Do utylizacji</option>
  43. </select>
  44. Data utylizacji:
  45. <input type="text" id="datepicker" name="Data_utylizacji"><br>
  46. <table>
  47. <tr>
  48. <td rowspan="3" align="left" valign="top">Lokalizacja:</td>
  49. <td><input type="radio" name="Magazyn" value="mazowiecka" checked="checked" />Mazowiecka</td>
  50. </tr>
  51. <tr>
  52. <td><input type="radio" name="Magazyn" value="bronowice" />Bronowice</td>
  53. </tr>
  54. <tr>
  55. <td><input type="radio" name="Magazyn" value="deleted" />Usunięte</td>
  56. </tr>
  57. </table><br>
  58. <input type="submit" value="Dodaj" />
  59. </form>
  60. <a href="index.php">Powrót</a>
  61. </body>
  62. </html>
nospor
formularz ma byc tylko JEDEN i ma on obejmowac wszystkie pola, a nie ty robisz formularz w petli dla kazdego pola
wicek
Czyli rozumiem , że nie ma problemu jak kod php znajduje się wewnątrz formularza?
Dałem rozpoczęcię go zaraz po <body> tak będzie odpowiednio ?
nospor
Cytat
Czyli rozumiem , że nie ma problemu jak kod php znajduje się wewnątrz formularza?
<form> to kod HTML. SKoro dla innego kodu HTML mozesz wkladac php w srodku to i dla FORM mozesz wkladac php w srodku... TO nie ma zadnego znaczenia. HTML to HTML a PHP to PHP

Cytat
Dałem rozpoczęcię go zaraz po <body> tak będzie odpowiednio ?

Formularz masz dawac w momencie rozpoczecia formularza a nie na samym poczatku strony. Formularz sie rozpoczyna wraz z pierwszym polem formularza. Tu nie ma zadnej filozofii
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.