Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] 1. przekazanie danych w sesji z checkbox, 2. baza-relacja?
lnn
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

Ostrzeżenie: (0%)
-----


Witam
Mam 2 pytania.

Pierwsze z nich to w jaki sposob przekazywac w sesji dane np z checkboxów?
Czy za pomoca $_POST do ukrytego <input name="costam" type="hidden" /> ?

Drugie pytanie to jesli chce utworzyc jakis rekord w tabeli i pozniej zeby uzytkownik mial mozliwosc edycji tylko tego wpisu to czy musze stworzyc jakas relacje usera z tabela z tymi danymi?

Bo w przypadku administratora jest mniejszy problem bo po prostu wyciagam cala tabele i robie z nia co zechce.. a w przypadku okreslonego wpisu i zarejestrowanego do niego usera?

Z gory dzieki za pomoc (IMG:style_emoticons/default/smile.gif) i rozwianie watpliwosci!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat
czy da rade to zapisac do jednej komorki w tabeli i potem rozdzielic


Masz na myśli zapis do bazy?

Jeśli tak, to możesz zrobić zrobić coś takiego, formularz html:

  1. <form action="NAZWA_SKRYPTU.php" method="post">
  2. <input type="checkbox" name="chk-1" /><br />
  3. <input type="checkbox" name="chk-2" /><br />
  4. <input type="checkbox" name="chk-3" /><br />
  5. <input type="checkbox" name="chk-4" /><br />
  6. <input type="checkbox" name="chk-5" /><br />
  7. <input type="checkbox" name="chk-6" /><br />
  8. <input type="checkbox" name="chk-7" /><br />
  9. <input type="checkbox" name="chk-8" /><br />
  10. <input type="checkbox" name="chk-9" /><br />
  11. <input type="checkbox" name="chk-10" /><br />
  12.  
  13.  
  14. <input type="submit" value="zapisz" />
  15. </form>


i teraz niezależnie, co zaznaczy user, możesz "ściągnąć" numery zaznaczeń w php np. tak:
  1. $selected = array();
  2. foreach($_REQUEST as $k =>$v) {
  3. if(preg_match("/chk-/",$k) != 0) {
  4. $temp = explode("chk-",$k);
  5. $selected[]=$temp[1];
  6. }
  7. }
  8. if(count($selected) != 0) {
  9. // i teraz tablica $selected przechowuje numery zaznaczonych checkboxów, sprawdźmy:
  10. foreach($selected as $hit) {
  11. echo $hit."<br />";
  12. }
  13. }


Teraz możesz zapisać wszystkie elementy tablicy $selected do jednego wiersza w bazie, oddzielając je przecinkami, najpierw dodajemy przecinki:
  1. $saveme = "";
  2. if(count($selected) != 0) {
  3. foreach($selected as $h) {
  4. $saveme.=$h.",";
  5. }
  6. }
  7. if(strlen($saveme) != 0) {
  8. // usuwamy ostatni przecinek dla porządku:
  9. $saveme = substr($saveme, 0, strlen($saveme)-1);
  10. }
  11. // sprawdźmy:
  12. echo $saveme;
  13. // działa, teraz tylko insert do bazy, ale to zostawiam już Tobie


ps. jak wyciągniesz z bazy wartości pooddzielane przecinkami, to analogicznie usuwasz je explode
ps2. Acha! jak chcesz zapisać to w sesji to dajesz poprostu
  1. $_SESSION["selected"] = $saveme;
a jak odczytać, np. mieć z powrotem w tablicy, to
  1. foreach(explode(",",$_SESSION["selected"]) as $v) {
  2. $resaveme[]=$v;
  3. }
  4. // i tyle, $resaveme jest tablicą zawierającą wyciągnięte z sesji wartości zaznaczonych kiedyś tam (w momencie zapisania do sesji) checkboxów


Pozdrawiam!

Ten post edytował darko 25.11.2009, 02:32:11
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 03:19