![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 26.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z formularzem, niby banalny ale nie moge tego zrobic. Otoz mam rozwijana liste i chce aby po wyborze ktorej mozliwosci z listy wartosc value byla wysylana do zmiennej i lista znikala a pojawial sie inny dowolny formularz ktory bedzie mial juz w jednym polu wpisana ta wartosc z listy.
Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ nie dałeś niczego (kod) na czym można się oprzeć to podaje pomysły.
1). Formularz A z listą rozwijalną. Wybieramy element z listy i zatwierdzamy formularz (jeśli ma to być automatyczne to w select dajemy "onchange=zatwierdzenie_formularza()"). Dodatkowo w przypadku użycia js ukryłbym przycisk zatwierdzenia formularza po załadowaniu dokumentu - jeśli koś ma włączone js to zatwierdzi formularz wybierając opcję a jak nie ma to wybierze opcje i kliknie w przycisk. Formularz A (z wybraną wartością z listy) idzie do skryptu, który generuje następny formularz - oznaczmy go jako B. W formularzu B ustawiamy wybraną wartość w liście rozwijanej (czyli w odpowiednim option dodajemy atrybut selected="selected"). 2). Podobne podejście jak wyżej tylko z AJAX. Zakładam, że wiesz: - operować formularzami, - wygenerować listę z wybraną opcją, - zatwierdzić formularz javascriptem. Jeśli czegoś nie wiesz to masz już idee i możesz znaleźć to w google, lub na forum. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 26.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie nie za bardzo wiem jakby miał ten kod przekazujący dane z pierwszego formularza i generujący drugi.
Oto kody 2 formularzy:
I generalnie dążę do tego żeby na końcu zostało wykonane takie zapytanie do bazy(te zmienne post tylko zeby lepiej to przedstawic): CODE $sql = 'UPDATE menu SET name="'.$_POST['name'].'", type="'.$_POST['type'].'", pos="'.$_POST['position'].'" WHERE id="'.$_POST['id'].'"'; Pozdrawiam Dodam tylko ze obojętnie czy to będzie w 1 formularzu czy w dwóch. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hmm. W zapytaniu które podałeś brakuje tylko 'id'.
Wnioskuje że: - to zapytanie ma być wykonane po formularzu nr 2, - to id (w zapytaniu) masz przekazać z pierwszego formularza do drugiego. Więc zatwierdzając formularz nr 1, przekazujesz do skryptu zmienną $_POST['id'], więc generując formularz nr. 2 dodajesz tylko jedno pole (określające id edytowanego elementu):
I tym sposobem z formularza nr. 2 dostajesz zmienne w tablicy post: id, name, type i position, które możesz sobie wrzucić do zapytania sql. Wsjo. Edit: Acha i w drugim formularzu przydałoby się jakoś pobrać dane edytowanej (bo chyba to chcesz zrobić) kategorii. Nie zauważyłem skąd chcesz brać 'name' i 'type' edytowanego elementu. Nie ma wcześniej żadnego zapytania do bazy. Ten post edytował ziqzaq 25.12.2008, 20:54:03 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 26.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam jeszcze jedno pytanie, czym mogę zastąpić kod java w poniższym kodzie. Ważne zeby po wybraniu danej opcji przekierowywało na adres który jest podany w polu Value.
Kod <select onchange="self.location.href = this.value">
<option value="admin.php?page=menu&mode=edittype&id='.$r['id'].'">Costam</option> </select> |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wartość musi być chyba pełnym adresem (razem z http://...)
Albo nie rób redirect (bo zadziała tylko z js) tylko normalny formularz: "id" (z select) przesyłasz wtedy z formularza. Dodatkowo możesz dodać do body
i w ten sposób jak ktoś ma włączone js to przycisk będzie niewidoczny (bo jest niepotrzebny), w przeciwnym przypadku będzie mógł użyć przycisku do zatwierdzenia formularza. Sorki za jakość kodu. Co do js to możesz sobie dopisać funkcje i poprostu później je wywołać a nie wrzucać prosto do html. Zrób jak ci wygodniej. PS I nie java tylko javascript (js) - to są dwie różne rzeczy ![]() Edit: Aj! Błąd w js w onload body. Poprawione. Ten post edytował ziqzaq 25.12.2008, 23:25:46 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 23:29 |