Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] lista input radio i update na ich podstawie
Forum PHP.pl > Forum > Przedszkole
john_doe
Załóżmy, że jest sobie tabela userów i jednym z pól jest flaga (1 lub 0)

zwracam sobie taką listę w postaci tabelerycznej i w ostatniej kolumnie pakuję dwa radio buttony ON i OFF.

Chciałbym na całej tej liście dokonać zmian i wysłać to do pliku POSTem celem update`u na bazie.

Jak to zrobić?
Gdy w grę wchodzą checkboxy to daje name=tab[] i potem w pętli .....

CuteOne
  1.  
  2. while($row = mysql_fetch_array($query)) {
  3.  
  4. $write .=
  5. '<td>'.$row['user_id'].'</td>
  6. <td>'.$row['imie'].'</td>
  7. <td><input type="radio" name="activate_'.$row['user_id'].'"></td>';
  8. }
  9.  


  1. while($row = mysql_fetch_array($query)) {
  2.  
  3. if($_POST['active_'.$row['user_id']]) { echo "nanana"; } // hmm nie pamietam jakie value zwraca zaznaczone radio ^-^
  4. }
john_doe
zaćmienie jakieś chyba miałem wczoraj. mój kod jest następujący.

  1. $stmt = $dbh->prepare( $SELECT_USERS_ADDONS_SETTINGS );
  2.  
  3. $stmt->execute();
  4.  
  5. $rowNumber = 1;
  6.  
  7. echo '<form method="POST" action="update.php" />';
  8.  
  9. echo '<table id="mytable">';
  10. echo '<tr>
  11. <th>Lp.</th>
  12. <th>Imię i nazwisko</th>
  13. <th>Akcje</th>
  14. </tr>';
  15.  
  16. while( $row = $stmt->fetch(PDO::FETCH_ASSOC) )
  17. {
  18. echo '<tr id="id'.$rowNumber.'">';
  19.  
  20. echo '<td>' . $rowNumber . '</td>';
  21. echo '<td>' . $row['user_name'] . ' ' . $row['user_surname'] . '</td>';
  22.  
  23. if( $row['user_planVisible'] == 1 )
  24. {
  25. echo '<td>
  26.  
  27. <input type="radio" value="1" name="' . $row['user_id'] . '" checked />
  28. <input type="radio" value="0" name="' . $row['user_id'] . '" />
  29.  
  30. </td>';
  31. }
  32. else {
  33. echo '<td>
  34.  
  35. <input type="radio" value="1" name="' . $row['user_id'] . '" />
  36. <input type="radio" vlaue="0" name="' . $row['user_id'] . '" checked />
  37.  
  38. </td>';
  39. }
  40.  
  41. echo '</tr>';
  42.  
  43. $rowNumber++;
  44. }
  45.  
  46. echo '</table>';
  47.  
  48. echo '<input class="btnblue" type="submit" value="Zapisz" />';
  49.  
  50. echo '</form>';


tak to odbieram w update.php
  1. foreach($_POST as $key=>$value)
  2. {
  3. echo $key . ' ' . $value . '<br />';
  4. }


i zupełnie nie wiem dlaczego wynik jest taki

2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 on
15 0

dlaczego dla id 14 wywala mi "on"
tomm
Po wysłaniu forma w pliku update.php otrzymujesz tablicę asocjacyjną gdzie kluczem jest id okreslnego usera a wartością 1 lub 0 w zależności co zostało zaznaczone,
wysyłasz szkielet zapytania
$stmt = $pdo->prepare(UPDATE users SET flaga = :flaga WHERE user_id = :user_id);
a później podpinasz konkretne wartości wykorzystując pętlę foreach

foreach($_POST as $k => $v){
$stmt->bindValue(':flaga', $v);
$stmt->bindValue(':user_id', $k);
$stmt->execute();
}
john_doe
dokładnie doszedłem do tego tak jak napisał tomm.
wyedytowałem mój post powyżej. Zupełnie nie wiem dlaczego w post mam jedną wartość zamiast 1 mam "on"
jak zajrzę w kod strony to value jest ok a gdy odbieram mam taką kiszkę. dlaczego?
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.