Odczytywanie wartości pola formularza.

0

Witam

Mam formularz w którym wybieram z listy różne wartości. Wartości listy są pobierane z bazy danych. Są jednak listy, których wartości są uzależnione od wartości poprzednich list, dlatego należy przekazać do funkcji pobierającej dane z tabeli wartość z poprzednio wybranej listy. Wiem jak to zrobić na 2 formularzach bo wtedy mogę przekazać te wartości do zmiennych, ale jak to zrobić na jednym formularzu, tak by dynamicznie można było przypisywać tą wartość do funkcji wybierającej?

Pozdrawiam

1

Aby nie przeładowywać całej strony masz dwa wyjścia:

  1. wszystko w javascript:
    generujesz sobie odpowiednie struktury w javascript wiążące wartości z pierwszej listy z wartościami z drugiej listy
    np.
    z listy 1 wybrano wartość "A" to w drugiej wyświetl: 1, 2, 3, 4
    "B": 2, 5, 7
    ...
    na onchange listy 1 modyfikujesz liste 2
  2. ajax
    na onchange listy 1 javascriptem pobierasz wartość aktualnie wybraną w liście i wysyłasz zapytanie ajaxem o wartości do listy 2
1

Twoj problem mozna porownac do wyboru z listy - wojewodztwa - a nastepnie, na tej podstawie - powiatu. Prawda? Ja realizowalem ten problem, przy pomocy technologii AJAX, wraz z jQuery. Tzn. lista wojewodztw byla "stala", a dopiero po wyborze wojewodztwa, w zaleznosci od wybranej wartosci - ladowana byla lista powiatow. W tym celu nalezy oprogramowac zdarzenie onchage komponentu <select>:

$('select[name=location]').change(function()
{
	var loactionId = $(this).val(); // ID wojewodztwa
});

Zakladam, ze lista powiatow jest trzymana w tabeli 3-kolumniowej: ID powiatu, ID wojewodztwa oraz nazwa powiatu.

Tak wiec majac ID wojewodztwa, mozna pobrac liste powiatow, przynalezacych do danego wojewodztwa. Skrypt moze zwracac te liste w formacie JSON, a jQuery - odebrac te dane:

$.post('/location', {id: locationId}, function(data)
{
// data jest obiektem z lista powiatow
}, 'json');

Mam nadzieje, ze w miare jasno sie wyrazilem nie publikujac tu pelnego kodu...

0

Dzięki Panowie.

Chodź nie bardzo orientuje się w JS i JQ, to wiedziałem, że da się to wykonać tymi językami, miałem jednak nadzieję, że jest jeszcze jakiś prosty sposób z wykorzystaniem php. Teraz wiem, że muszę to zrobić tymi językami.

Jeszcze raz dziękuje i pozdrawiam.

1

Dynamicznie ladowanie danych przy pomocy AJAX-a to jedyne sluszne rozwiazanie ;) Oczywiscie mozesz kombinowac z samym PHP polegajace na przeladowaniu strony z formularzem. Tzn:

oprogramowujesz w JS zdarzenie onchange i w tym momencie przeladowujesz strone, wraz z parametrem oznaczajacym ID wojewodztwa (w GET):

$('select[name=location]').change(function()
{
	var loactionId = $(this).val(); // ID wojewodztwa
	window.location.href = '/foo?id=' + locationId;

});
0

Nic z tego nie rozumiem :D Spróbuje to zrobić jakimś prostym przeładowaniem bo na JS jest za wcześnie. Próbowałem to zrobić zdarzeniem onchange i kodem:

 var obiektSelect = document.getElementById('Formularz').kolorOczu;
alert( obiektSelect.options[obiektSelect.selectedIndex].value );

ale nie śmiga. Zobaczymy co wymysle :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1