A mianowicie mam problem z rozwiązaniem dodawania i edycji produktów, dla serwisu ala-sklepowego. Problem dotyczy tego że jest to serwis z częściami samochodowymi. Przy dodawaniu produków ma być opcja dodawania marek i modeli samochodów do których ten produkt pasuje. Baze danych modeli i marek mam zbudowaną na zasadzie:
marki aut
id | marka
modelei aut
id | id_marka | model
Opcja dodawania marki i modelu samochodu jest dostępna w osobnym formularzu z PA.
Kwestia w tym że kiedy klient będzie dodawał nowe produkty, musi przyporządkować produkt do wybranej marki i modelu samochodowego, przy wyborze jednej opcji to nie problem. Ale w jaki sposób najlepiej rozwiązać opcje przypisania produktu do kilku marek i modeli samochodów (zwłaszcza jeżeli marek samochodów jest około 30 i więcej) a modeli 4 razy tyle.
Myslałem zrobić to na zasadzie jednej listy wielokrotnego wyboru na zasadzie takiej:
Kod
<select name="nazwa" multiple="multiple">
<optgroup value="'.$id_marka.'" label="Daihatsu">
<option value="'.$id_model.'">Feroza</option>
<option calue="'.$id_model.'">Rocky</option>
<option calue="'.$id_model.'">...</option>
</optgroup>
</select>
<optgroup value="'.$id_marka.'" label="Daihatsu">
<option value="'.$id_model.'">Feroza</option>
<option calue="'.$id_model.'">Rocky</option>
<option calue="'.$id_model.'">...</option>
</optgroup>
</select>
W jakiejś pentelce by wyświetlić tą listę, tylko kiedy marek i modeli w sumie bedzie ponad 100pozycji to taka lista bedzie niewygodna w użyciu. W bazie danych produktu były by dwie kolumny "marka" i "model", zaś zapis wybranych kilku pozycji wyglądał by na zasadzie dopisywania po średniku id wybranej marki/modelu.
Ale jak to zrobić by było to wygodne w obsłudze, by dodanie produktu zajmowało jak najmniej czasu (bez przeszukiwania całej listy wszyskich modeli i marek by je przyporządkować). Myślałem coś z użyciem AJAX pola autosugestera (ale to niedokońca chyba dobre rozwiązanie, tymbardziej jeżeli ten co bedzie dodawal produkt np nie będzie pamiętał modelu auta, tylko na podstawie marki kojarzył, że to był ten).
Myślałem też o dynamicznych listach, czyli wybiera klient najpierw markę a potem model (lub wszystkie modele danej marki) kiedy wciśnie dodaj, pod spodem zamieścić listę (wyświetlajacą co zostało dodane) i klient za pomocą tych samych list rozwijalnym może przypisywać kolejne. Zaś na liście wyświetlanej elementów przypisanych obok umieścić możliwość usunięcia wybranego modelu czy marki (w przypadku kiedy klient by się pomylił). Ale wtedy dokochodzi kolejna kwestia że jeżeli usunie wybraną markę z listy to by automatycznie usuwało również modele które do tej marki są przypisane.
Dość skomplikowanie to wszystko wychodzi - a mi chodzi o szybkie i wygodne rozwiązanie tego a nie stworzyć sobie kolejny mechanizm nad którym będę musiał sporo czasu posiedzieć by rozważyć wszystkie za i przeciw i zrobić skrypt dobrze działajacy.
Czekam na jakieś wasze propozycje jak to rozwiazać, pomysły, sugeste a nawet linki do stron gdzie coś takiego jest rozwiązane (bym miał na czym się wzorować).