Mój problem dotyczy obsługi zaznaczania w jqgrid
Zaznaczanie "zwykłe" działa bezproblemowo.
Ale schody mam, gdy pobieram dane z 2 tabel z bazy i łączę je w zapytaniu.
Krótki opis sytuacji:
Są 2 tabele w MySQL (po dwukropku ich pola):
Media: id, Med, Kat, Nr_id, Autor, Tytul
Egzempl: id, Med, Kat, Nr_id, Nr_egz, Dostepny.
Najpierw - zliczam sobie ile będzie rekordów dla mojego warunku:
"SELECT COUNT(*) AS count FROM egzempl WHERE Dostepny='Tak'";
Potem wykonuję niezbędne zapytanie do pobierania rekordów:
"SELECT * FROM egzempl JOIN media ON egzempl.Med = media.Med AND egzempl.Kat = media.Kat AND egzempl.Nr_id = media.Nr_id WHERE Dostepny='Tak';
W ten sposób pobieram "dostępne" dane z dwóch tabel, gdzie dane są sobie równe w polach: Med, Kat, Nr_id.
I je listuję w gridzie:
$response->rows[$i]['id']=$row[id]; $response->rows[$i]['cell']=array($row[Tytul],$row[Autor],$row[Med],$row[Kat],$row[Nr_id],[b]$row[Nr_egz][/b],$row[Wydawnictwo]); $i++; }
Nr_egz wytłuściłem - bo z nim jest problem - po prostu listuję do grida wszystkie pola z jednej tabeli + Nr_egz z drugiej tabeli
I teraz sedno problemu:
W gridzie:
dzięki włączonej opcji:
multiselect: true,
mogę zaznaczyć dowolny rekord:
$(document).ready(function(){ $('#btn').click(function(){ var ksiazka; ksiazka = jQuery("#list2").jqGrid('getGridParam','selarrrow'); $('#box1').load('wypozyczenie_okno1.php', {ksi: ksiazka}); }); });
I dostaję id zaznaczonego rekordu - id pochodzi z tabeli media.
Problemy są 2:
1. Polega na tym, że jak jest w bazie kilka egzemplarzy danej książki - to prawidłowo je wypisuje, tzn. wypisuje książkę z jej namiarami + dany powiązany Nr_egz - np. jeśli są 2 egzemplarze książki - to wypisuje wszystko + Nr_egz=1, następnie znów wszystko + Nr_egz=2. I jak chcę zaznaczyć rekord 2 - to zaznacza mi zawsze pierwszy spełniający "egzempl.Med = media.Med AND egzempl.Kat = media.Kat AND egzempl.Nr_id = media.Nr_id" te 3 warunki :-(
2. Jak pobrać z zaznaczonego rekordu - dany Nr_egz, żeby wykorzystywać wybrany rekord dalej do innego formularza - wszystkie dane pobieram bez problemu, ale jak dostać ten Nr_egz, którego rekord jest akurat zaznaczony?
Może inaczej zadam pytanie - jak przy użyciu jqgrid i opcji multiselect pobrać zawartość całego zaznaczonego rekordu - może być do jakiejś tablicy odpowiednie wartości?
Wszędzie w manualach jest tylko mowa o pobieraniu id zaznaczonego rekordu...?