Odczytywanie wartości pola formularza.

Odpowiedz Nowy wątek
2011-02-24 14:10
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

Pozostało 580 znaków

2011-02-24 14:38
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

Pozostało 580 znaków

2011-02-24 14:38

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...

Pozostało 580 znaków

2011-02-24 14:43
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.

Pozostało 580 znaków

2011-02-24 14:50
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;

});

Pozostało 580 znaków

2011-02-24 15:06
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 :)

edytowany 1x, ostatnio: Robster, 2011-02-24 15:06
Odpowiedz
Liczba odpowiedzi na stronę

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