Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MSSQL][PHP] Przypięcie i odpięcie użytkownika od regionu polski
Forum PHP.pl > Forum > Przedszkole
john_doe
Witajcie,
stworzyłem trzy tabele
1. tabela users
2. tabela regions ( z województwami zwykły słownik)
3. tabela userRegions ( która spina dwie 1sze: id, id_usera, id_regionu )

wypisuję wszystkich userów na ekran z linkiem na nazwisku. Tym linkiem chciałbym przenieść do strony, która zawierałaby coś takiego

nazwa_woj | checkbox (checked lub nie w zależności czy user ma przypis )

chodzi mi o koncepcję jak wykonać, że jednego checka odchaczam innego zachaczam i idzie delete lub insert do tabeli nr3.
Generalnie przypisanie lub wypisanie usera z przynależności do regionu.
yevaud
ja bym zrobil
  1. <input type="checkbox" name="region[<?php=$idregionu?>]" />

pozniej w php klasyczny
  1. foreach ($_POST['region'] as $idregionu => $checked)
sadistic_son
Zrób z checkboxów tablicę:
  1. echo'<input typ="checkbox" name="check[]" value="'.$id_regionu'." />';

Nastepnie zczytujesz checkboxy i dla każdego zaznaczonego wykonujesz akcje.
  1. foreach($_POST['check'] as $c){
  2. //zapytanie $sql
  3. }
john_doe
próbuję wykonać to jak sadistic_son "zawskazówkował"
Jestem na etapie wyświetlania. Wyświetlam to tak, że klikam w nazwisko usera po czy wyskakuje lista wszystkich województw z checkami zaznaczonymi bądź nie.

Mam kłopot merytoryczny, bo moim zdaniem w gre wchodzą dwie operacje
1. INSERT
2. DELETE

mały przykład
  1. <form action="od.php" method="post" >
  2.  
  3. <input type="checkbox" name="czek[]" value="1" />
  4. <input type="checkbox" name="czek[]" value="2" />
  5. <input type="checkbox" name="czek[]" value="3" />
  6. <input type="checkbox" name="czek[]" value="4" />
  7. <input type="checkbox" name="czek[]" value="5" />
  8.  
  9. <input type="submit" value="xxx" />
  10.  
  11. </form>

  1. foreach($_POST['czek'] as $c)
  2. {
  3. if(isSet($c))
  4. {
  5. echo $c . '<br />';
  6. }else echo 'Nie zaznaczono';
  7.  
  8. }

Gdy nie zaznaczę czegoś to go nie ma sad.gif potrzebuję id tego co zaznaczyłem i odznaczyłem by wykonać delete lub insert na bazie.
chyba pomijam coś prostego...
sadistic_son
Checkbox niezaznaczony nie jest w ogole przesyłany w formularzu. Dlatego warunek if(isset($c)) nie ma w ogole sensu.
Ja bym to zrobil tak:
W petli forech sprawdzam ktore id sa przekazane w formularzu ($_POST['check']). Nastepnie pobralbym z bazy wszystkie juz istniejace rekordy i w przypadku kiedy sie zaznaczylo nowa wartosc dodawal ja, natomiast kiedy sie ja odznaczylo (nie ma jej w $_POST['check']) wyrzucal ja z bazy.
Przydatna bedzie funkcja in_array. Rekordy z bazy wrzucasz do tablicy, nastepnie za pomoca in_array przeszukujesz czy sprawdzany aktualnie $c jest w bazie. Jesli nie, to INSERT INTO. Nastepnie w odwrotna strone dla DELETE.
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.