Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] checbox i zapis do mysql
Forum PHP.pl > Forum > Przedszkole
trucksweb
mam prosty formularz i proste pytanie blinksmiley.gif
jak poprawnie obslugiwac checkboxa ? tzn. jak podczas edycji uzytkownika pobierac wartosc do checkboxa (0,1-checked)
a potem jak poprawnie dokonac updatu do bazy ?

  1. <?php
  2. (.....)
  3.  
  4. if($n && $l && $e) {
  5. $zapytanie = "UPDATE administratorzy SET nazwa='$n', login='$l', email='$e' , zablokowany='$zablokowany' WHERE id=$id";
  6. $wynik = @mysql_query($zapytanie);
  7. //jesli zapytanie jest poprawne
  8. } 
  9.  
  10.  
  11. }//koniec wyslany
  12.  
  13. //pobranie informacji o uzytkowniku
  14. $zapytanie = "SELECT id,nazwa, login, uprawnienia, zablokowany, email FROM administratorz
    y WHERE id=$id"
    ;
  15. $wynik = @mysql_query($zapytanie);
  16.  
  17. //jesli uzytkownik o podanym id istnieje to wyswietl jego dane
  18. if(@mysql_num_rows($wynik) == 1) {
  19. //pobiera informacje
  20. $row = mysql_fetch_array($wynik, MYSQL_NUM);
  21.  
  22. echo '
  23. <form action="?akcja=edytuj_uzytkownika&id='. $id .'" method="post">
  24. <table>
  25. <tr><td>Imię i Nazwisko</td><td><input type="text" name="nazwa" size="20" maxlength="40" value="'. $row[1] .'" /><tr>
  26. <tr><td>Login</td><td><input type="text" name="login" size="20" maxlength="40" value="'. $row[2] .'" /><tr>
  27. <tr><td>Uprawnienia</td><td><input type="radio" name="uprawnienia" value="3"> Główny Administrator <br />
  28. <input type="radio" name="uprawnienia" value="2"> Administrator <br />
  29. <input type="radio" name="uprawnienia" value="1"> Użytkownik <tr>
  30. <tr><td>Zablokowany</td><td><input type="checkbox" name="zablokowany" ';?><?php if($row[4] == 0) else { echo ' checked="checked"'; echo' /><tr>
  31. <tr><td>Email</td><td><input type="text" name="email" size="20" maxlength="40" value="'. $row[5] ." /><tr>
  32. <tr><td colspan="2" align="right">
  33. <a href="?akcja=uzytkownicy" class="button">Anuluj</a>
  34. <input type="submit" name="submit" value="Edytuj" class="button_input"/>
  35. <input type="hidden" name="wyslany" value="TRUE">
  36.  
  37.  
  38. ?>
tsharek
łapotologicznie update może wyglądać tak:
  1. <?php
  2. $zapytanie = "UPDATE administratorzy SET nazwa='$n', login='$l', email='$e' , zablokowany='".(isset($zablokowany)?1:0)."' WHERE id=$id";
  3. ?>

Dzieje się tak że jeżeli nie ma zaznaczonego checkboxu nie jest wogle wysyłana dana zmienna, a jak jest zaznaczony to jest albo wysyłana wartość z value albo 'On' w przypadku braku zdefiniowania tej wartości.

Ps: Używaj funkcji escapowania (SQL INJECTION) oraz register_globals na off (chyba że masz to w górnej części kodu)
trucksweb
dzieki, wszystko pieknie dziala, ale jeszcze jest drugi problem tym razem z radio buttonem:
-uzytkownik moze miec uprawnienia gl. admina, admin, i usera

  1. <?php
  2.  
  3. if(($_POST['$uprawnienia']) == 3) {
  4. $uprawnienia = '3';
  5. } elseif(($_POST['$uprawnienia']) == 2) {
  6. $uprawnienia = '2';
  7. } else {
  8. $uprawnienia = '1';
  9. }
  10.  
  11. //sprawdzenie 
  12. //jesli wszystko jest ok to wykonujemy edycje
  13. if($n && $l && $e) {
  14. $zapytanie = "UPDATE administratorzy SET nazwa='$n', login='$l', email='$e' , uprawnienia='$uprawnienia', zablokowany='".(isset($zablokowany)?1:0)."' WHERE id=$id";
  15. $wynik = @mysql_query($zapytanie);
  16. //jesli zapytanie jest poprawne
  17. } 
  18.  
  19.  
  20. }//koniec wyslany
  21.  
  22. //pobranie informacji o uzytkowniku
  23. $zapytanie = "SELECT id,nazwa, login, uprawnienia, zablokowany, email FROM administratorz
    y WHERE id=$id"
    ;
  24. $wynik = @mysql_query($zapytanie);
  25.  
  26. //jesli uzytkownik o podanym id istnieje to wyswietl jego dane
  27. if(@mysql_num_rows($wynik) == 1) {
  28. //pobiera informacje
  29. $row = mysql_fetch_array($wynik, MYSQL_NUM);
  30.  
  31. echo '
  32. <form action="?akcja=edytuj_uzytkownika&id='. $id .'" method="post">
  33. <table>
  34. <tr><td>Imię i Nazwisko</td><td><input type="text" name="nazwa" size="20" maxlength="40" value="'. $row[1] .'" /><tr>
  35. <tr><td>Login</td><td><input type="text" name="login" size="20" maxlength="40" value="'. $row[2] .'" /><tr>
  36. <tr><td>Uprawnienia</td><td><input type="radio" name="uprawnienia" value="3" ';?><?php if($row[3] == 3) echo ' checked="checked"'; echo'> Główny Administrator <br />
  37. <input type="radio" name="uprawnienia" value="2" ';?><?php if($row[3] == 2) echo ' checked="checked"'; echo'> Administrator <br />
  38. <input type="radio" name="uprawnienia" value="1" ';?><?php if($row[3] == 1) echo ' checked="checked"'; echo'> Użytkownik <tr>
  39. <tr><td>Zablokowany</td><td><input type="checkbox" name="zablokowany" size="20" maxlength="40" ';?><?php if($row[4] == 1) echo ' checked="checked"'; echo' /><tr>
  40. <tr><td>Email</td><td><input type="text" name="email" size="20" maxlength="40" value="'. $row[5] ." /><tr>
  41. <tr><td colspan="2" align="right">
  42. <a href="?akcja=uzytkownicy" class="button">Anuluj</a>
  43. <input type="submit" name="submit" value="Edytuj" class="button_input"/>
  44. <input type="hidden" name="wyslany" value="TRUE">
  45. ?>


jak dokonac zapisu do bazy, ktorego radio buttona kliknieto ?
probowale kilkoma sposobami ale cos marnie...
uli
  1. <?php
  2. if(($_POST['$uprawnienia']) == 3) {
  3. ?>
- ŹLE
  1. <?php
  2. if(($_POST['uprawnienia']) == 3) {
  3. ?>
- DOBRZE

  1. <?php
  2. } elseif(($_POST['$uprawnienia']) == 2) {
  3. ?>
- ŹLE
  1. <?php
  2. } elseif(($_POST['uprawnienia']) == 2) {
  3. ?>
- DOBRZE
trucksweb
hmm,nie wiem czy tak moze byc- sprawdze w domu.
dzieki za odpowiedz
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.